Hallöchen,
ich bastel gerade an ein paar Diagrammen mit Tikz, leider kriege ich das was ich gerne hätte nicht hin. Und zwar:
Ich wollte erreichen, dass die Balken an der X-Achse beginnen und nicht mittendrin. Außerdem wollte ich, dass auch, wenn die Balken dort beginnen, sie trotzdem noch an der Position an der sie sich gerade befinden bleiben.
Ich schlage mich damit jetzt schon seit Stunden damit rum - eine Hilfestellung wäre phänomenal!
Edit: Habe vergessen das Beispiel zu posten (großes Kino)
https://www.overleaf.com/read/jsfcrprrtwxp
Beste Grüße,
Sebastian
Tikz ybar stacked will nicht so wie ich.
Tikz ybar stacked will nicht so wie ich.
Zuletzt geändert von schleyse am Fr 18. Mär 2016, 17:32, insgesamt 1-mal geändert.
Re: Tikz ybar stacked will nicht so wie ich.
Ohne Minimalbeispiel dürften die Chancen dafür eher sehr schlecht stehen, denn ein beliebiges Beispiel, bei dem die Balken an der x-Achse beginnen, dürfte Dir kaum weiter helfen.schleyse hat geschrieben: Ich schlage mich damit jetzt schon seit Stunden damit rum - eine Hilfestellung wäre phänomenal!
Ups, vergessen anzuhängen. Von Overleaf hierher kopiert:
\documentclass[border=10pt]{standalone} %%%< \usepackage{verbatim} %%%> \usepackage{pgfplots} \pgfplotsset{width=7cm,compat=1.8} \begin{comment} :Title: Stacked bar plot :Tags: 2D;Stacked plots;Manual :Author: Christian Feuersänger :Slug: stacked-bar-plot Stacking plots means to add either x or y coordinates of successive \addplot commands on top of each other. The code is from the PGFPlots 1.10 manual: "4.5.8 Stacked Plots", "Stacked Bar Plots and Nodes Near Coords". \end{comment} \begin{document} \begin{tikzpicture} \begin{axis}[ width=14.5cm, height=7cm, ymin=0, ybar stacked, bar width=140pt, enlargelimits=0.5, legend style={at={(0.5,-0.20)}, anchor=north,legend columns=2}, ylabel={kg/t-Al}, symbolic x coords={Primärerzeugung, Recycling}, xtick=data] \addplot+[ybar] plot coordinates {(Primärerzeugung,3185) (Recycling,0)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,0)(Recycling,296)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,330) (Recycling,0)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,0)(Recycling,27)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,135) (Recycling,0)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,0)(Recycling,73)}; \legend{\strut Bayerprozess (87{,}3~\%), \strut Salzrecycling (74{,}9~\%), \strut Elektrolyse (9{,}0~\%), \strut Schrottvorbereitung (6{,}8~\%), \strut Sonstiges (3{,}7~\%), Schmelzen{,} Energiebereitstellung (18{,}3~\%)} \end{axis} \end{tikzpicture} \end{document}
Ich habe an Deinem Beispiel lediglich ein paar Änderungen vergenommen, welche meiner Meinung nach sinnvoll wären. Es ist keine Lösung Deines Problems.
Sollen die Balken so breit sein?
\documentclass[border=10pt]{standalone} \usepackage{selinput} \SelectInputMappings{ adieresis={ä}, germandbls={ß} } \usepackage{siunitx} \usepackage{pgfplots} \pgfplotsset{ compat=1.12, % wegen Overleaf, MiKTeX und TeX Live dürften 1.13 unterstützen /pgf/number format/.cd, 1000 sep=\thinspace, % Änderung des Tausendertrennzeichens min exponent for 1000 sep=4 % nicht bei vierstelligen Zahlen } \sisetup{ locale = DE, % für die Dezimaltrennzeichen in der Legende per-mode = fraction % für den Bruch in der Beschriftung der Y-Achse } \begin{document} \begin{tikzpicture} \begin{axis}[ width=14.5cm, height=7cm, ymin=0, ybar stacked, bar width=140pt, enlargelimits=0.5, legend style={ at={(0.5,-0.20)}, anchor=north, legend columns=2, cells={anchor=west} % Legendentext linksbündig ausrichten }, ylabel={$\si{\kg\per\tonne}-\mathrm{Al}$}, symbolic x coords={Primärerzeugung, Recycling}, xtick=data ] \addplot+[ybar] plot coordinates {(Primärerzeugung,3185) (Recycling,0)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,0)(Recycling,296)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,330) (Recycling,0)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,0)(Recycling,27)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,135) (Recycling,0)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,0)(Recycling,73)}; \legend{ Bayerprozess (\SI{87.3}{\percent}), Salzrecycling (\SI{74.9}{\percent}), Elektrolyse (\SI{9}{\percent}), Schrottvorbereitung (\SI{6.8}{\percent}), Sonstiges (\SI{3.7}{\percent}), Schmelzen{,} Energiebereitstellung (\SI{18.3}{\percent}) } \end{axis} \end{tikzpicture} \end{document}
Danke erstmal
Hallo Bartman,
danke schonmal für die Veränderungen. Die Balkenbreite wäre schon gut wenn sie so um den Dreh wie in meinem Beispiel ist.
Wenn jetzt noch jemand einen kleinen Tipp bezüglich des ursprünglichen Problems hätte wäre ich echt happy
Beste Grüße,
Sebastian
danke schonmal für die Veränderungen. Die Balkenbreite wäre schon gut wenn sie so um den Dreh wie in meinem Beispiel ist.
Wenn jetzt noch jemand einen kleinen Tipp bezüglich des ursprünglichen Problems hätte wäre ich echt happy

Beste Grüße,
Sebastian
Ändere enlargelimits=.5 zu enlarge x limits=0.5

Gruß
Elke

\documentclass[border=10pt]{standalone} \usepackage{selinput} \SelectInputMappings{ adieresis={ä}, germandbls={ß} } \usepackage{siunitx} \usepackage{pgfplots} \pgfplotsset{ compat=1.12, % wegen Overleaf, MiKTeX und TeX Live dürften 1.13 unterstützen /pgf/number format/.cd, 1000 sep=\thinspace, % Änderung des Tausendertrennzeichens min exponent for 1000 sep=4 % nicht bei vierstelligen Zahlen } \sisetup{ locale = DE, % für die Dezimaltrennzeichen in der Legende per-mode = fraction % für den Bruch in der Beschriftung der Y-Achse } \begin{document} \begin{tikzpicture} \begin{axis}[ width=14.5cm, height=7cm, ymin=0, ybar stacked, bar width=140pt, enlarge x limits=0.5 % <- nur x limits! legend style={ at={(0.5,-0.20)}, anchor=north, legend columns=2, cells={anchor=west} % Legendentext linksbündig ausrichten }, ylabel={$\si{\kg\per\tonne}-\mathrm{Al}$}, symbolic x coords={Primärerzeugung, Recycling}, xtick=data ] \addplot+[ybar] plot coordinates {(Primärerzeugung,3185) (Recycling,0)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,0)(Recycling,296)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,330) (Recycling,0)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,0)(Recycling,27)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,135) (Recycling,0)}; \addplot+[ybar] plot coordinates {(Primärerzeugung,0)(Recycling,73)}; \legend{ Bayerprozess (\SI{87.3}{\percent}), Salzrecycling (\SI{74.9}{\percent}), Elektrolyse (\SI{9}{\percent}), Schrottvorbereitung (\SI{6.8}{\percent}), Sonstiges (\SI{3.7}{\percent}), Schmelzen{,} Energiebereitstellung (\SI{18.3}{\percent}) } \end{axis} \end{tikzpicture} \end{document}
Elke
- Dateianhänge
-
- gl_enlargexlimits.png (20.33 KiB) 2168 mal betrachtet