Hilfslinien im Säulendiagramm Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


MoritzFranke

Hilfslinien im Säulendiagramm

Beitrag von MoritzFranke »

Hallo,

ich baue mir gerade nach einer Vorlage aus diesem Forum ein Säulendiagramm. Nun möchte ich noch für jeden y Wert: 300, 301 ,302 ...bis 310 eine horizontale Hilfslinie zeichnen, wie kriege ich das denn hin?

Ich dachte vielleicht mit:
%\foreach \y in {300,...,310}  %Hilfslinien
    %\draw[gray!50, text=black] (-0.2 cm,\x cm) -- (15.5 cm,\x cm) 
    % node at (-0.5 cm,\x cm) {\x};  %Beschriftung der Hilfslinien
Hier mein hoffentlich minimales Beispiel:

\documentclass[a4paper,12pt,twoside]{report} 
\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel}
\usepackage{siunitx} 
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{tikz}
\usepackage{csvsimple}

\begin{document} 

\pgfplotsset{ 
   compat=1.9, 
   xlabel near ticks, 
   ylabel near ticks 
} 

\begin{tikzpicture} 
     \begin{axis}[ 
       height=10cm, 
       width=16cm, 
       enlargelimits=0.05, 
       legend style={ 
         at={(0.5,-0.2)}, 
         anchor=north, 
         legend columns=-1 
       }, 
       ymin=300, 
       ymax=310, 
       x tick label style={/pgf/number format/1000 sep=}, 
       x tick label style={rotate=45,anchor=east},
			 %x tick label style={font=\small,text width=1cm,align=center},
			 symbolic x  coords={0,Choice1,Choice2,Choice3},
       ylabel={Temperatur}, 
       ybar interval=0.7, 
       ytick={300,301,...,310} 
     ] 
       \addplot coordinates { 
         (0,303) 
         (Choice1,305) 
         (Choice2,305) 
         (Choice3,305) 
        
       }; 
			 
			\addplot coordinates { 
         (0,305) 
         (Choice1,307) 
         (Choice2,307) 
         (Choice3,307) 
        
       };
			
			 \addplot coordinates { 
         (0,307) 
         (Choice1,309) 
         (Choice2,309) 
         (Choice3,309) 
        
       };
			
			\addplot coordinates { 
         (0,307) 
         (Choice1,310) 
         (Choice2,310) 
         (Choice3,310) 
        
       };
        
       \legend{Versuch,grob,fein,feiner} 
   \end{axis} 
   \begin{axis}[ 
       height=10cm, 
       width=16cm, 
       enlargelimits=0.05, 
       ymin=300, 
       ymax=310, 
       ytick={300,301,...,310}, 
       hide x axis, 
       axis y line*=right, 
       ylabel={Temperatur in} 
     ] 
       \addplot[opacity=0]{300}; 
			
		%\foreach \y in {300,...,310}  %Hilfslinien
    %\draw[gray!50, text=black] (-0.2 cm,\x cm) -- (15.5 cm,\x cm) 
    % node at (-0.5 cm,\x cm) {\x};  %Beschriftung der Hilfslinien
     \end{axis} 
\end{tikzpicture} 


\end{document}
Zudem: Wie kann ich noch auf die Balken oder in die Balken Zahlen hineinschreiben? z.B. prozentual: +3% oder sowas?

Besten Dank und beste Grüße

euer Moritz

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2466
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Hilfslinien im Säulendiagramm

Beitrag von Bartman »

In Deinem Beitrag fehlt [/code] für die Hervorhebung Deines Beispiels.
MoritzFranke hat geschrieben:Nun möchte ich noch für jeden y Wert: 300, 301 ,302 ...bis 310 eine horizontale Hilfslinie zeichnen, wie kriege ich das denn hin?
Du könntest das optionale Argument ymajorgrids Deiner ersten axis-Umgebung hinzufügen.

pgfplots lädt tikz.

compat=1.9 ist nicht mehr aktuell.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Du willst ganz sicher nicht `ybar interval` sondern `ybar`.
\documentclass[a4paper,12pt,twoside]{report} 
\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel} 
\usepackage{siunitx} 
\usepackage{pgfplots} 
\pgfplotsset{ 
compat=1.12% aktuell wäre 1.14, aber das hat Overleaf noch nicht
}
\begin{document} 

\begin{tikzpicture} 
\begin{axis}[ 
height=10cm, 
width=16cm, 
enlargelimits=0.05,
enlarge x limits={abs=45pt},
legend style={ 
at={(0.5,-0.2)}, 
anchor=north, 
legend columns=-1 
}, 
ymin=300, 
ymax=310, 
x tick label style={/pgf/number format/1000 sep=}, 
x tick label style={rotate=45,anchor=east}, 
symbolic x coords={0,Choice1,Choice2,Choice3},
xtick={0,Choice1,Choice2,Choice3},
ylabel={Temperatur}, 
ybar,
bar width=20pt,
ytick={300,301,...,310},
ymajorgrids,
xminorgrids,
minor x tick num=1,
subtickwidth=0pt,
nodes near coords,
%nodes near coords style={font=\footnotesize},% in Version 1.12 noch nicht definiert
every node near coord/.append style={font=\footnotesize},
point meta=explicit symbolic,
] 
\addplot coordinates { 
(0,303)
(Choice1,305)[+3\%]
(Choice2,305)
(Choice3,305)
}; 
\addplot coordinates { 
(0,305)[] 
(Choice1,307) 
(Choice2,307)
(Choice3,307)
}; 
\addplot coordinates { 
(0,307) 
(Choice1,309) 
(Choice2,309) 
(Choice3,309) 
}; 
\addplot coordinates { 
(0,307) 
(Choice1,310) 
(Choice2,310) 
(Choice3,310) 
}; 

\legend{Versuch,grob,fein,feiner} 
\end{axis} 
\end{tikzpicture} 
\end{document}

MoritzFranke

Beitrag von MoritzFranke »

Super, so solls sein! Besten Dank :-)

Antworten