Seite 1 von 1
Tikz ybar stacked will nicht so wie ich.
Verfasst: Fr 18. Mär 2016, 16:11
von schleyse
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
Re: Tikz ybar stacked will nicht so wie ich.
Verfasst: Fr 18. Mär 2016, 17:18
von esdd
schleyse hat geschrieben:
Ich schlage mich damit jetzt schon seit Stunden damit rum - eine Hilfestellung wäre phänomenal!
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.
Verfasst: Sa 19. Mär 2016, 10:25
von Zaun-
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}
Verfasst: Sa 19. Mär 2016, 13:57
von Bartman
Ich habe an Deinem Beispiel lediglich ein paar Änderungen vergenommen, welche meiner Meinung nach sinnvoll wären. Es ist keine Lösung Deines Problems.
\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}
Sollen die Balken so breit sein?
Danke erstmal
Verfasst: Sa 19. Mär 2016, 16:41
von schleyse
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
Verfasst: Sa 19. Mär 2016, 17:02
von esdd
Ändere enlargelimits=.5 zu enlarge x limits=0.5
\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}
Gruß
Elke
Super.
Verfasst: Sa 19. Mär 2016, 19:13
von schleyse
Vielen vielen Dank!