Zwei Diagramme auf einer Linie: funktioniert nicht

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Zwei Diagramme auf einer Linie: funktioniert nicht

von Bartman » Do 9. Nov 2017, 17:34

\documentclass[12pt,a4paper]{report} 
\usepackage{pgfplotstable}
\usepackage{caption} 
\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc} 
\usepackage{showframe}

\pgfplotsset{compat=newest} 

\definecolor{myorange}{rgb}{1,0.3,0} 

\begin{document} 
\begin{flushleft}
\pgfplotsset{
	height=4cm,
	scale only axis, 
	axis lines=left, 
	x axis line style={|[left]-|[right]}, 
	y axis line style={|[right]-|[left]}, 
	ylabel=Anzahl, 
	ymin=0,
	ymajorgrids, 
	xlabel=Antworten, 
	xticklabel style={
		anchor=east,
		rotate=45,
		align=center
	},
	ybar=0pt,
	/pgf/bar width=1cm,
	enlarge x limits={abs=1cm},
	nodes near coords
}
\begin{minipage}[t]{0.45\textwidth}
\centering
\begin{tikzpicture}[baseline=(current axis.south)]% <- eingefügt 
\pgfplotstableread{ 
Antworten I 
{A}       5
{B}       2
{C}       3
}{\data}; 

\begin{axis}[
	width=5.5cm,
	ymax=6, 
	ytick={2,4,...,10},
	xtick={0,...,3},
	xticklabels={A,B,C},
	xlabel style={yshift=-3.7mm}% <- eingefügt
]
\addplot[fill=myorange]table[x expr=\coordindex,y=I]{\data}; 
\end{axis} 
\end{tikzpicture} 
\end{minipage}
\qquad
\begin{minipage}[t]{0.45\textwidth}
\centering
\begin{tikzpicture}[baseline=(current axis.south)]% <- eingefügt

\pgfplotstableread{ 
Antworten I 
{Ja}      7
{Nein}    3
}{\data}; 

\begin{axis}[
	width=4cm,
	ymax=8,
	ytick={2,4,6,8}, 
	xtick={0,...,2},
	xticklabels={Ja,Nein}
]
\addplot[fill=myorange]table[x expr=\coordindex,y=I]{\data}; 
\end{axis} 
\end{tikzpicture} 
\end{minipage}\\\bigskip
\begin{minipage}[t]{0.45\textwidth}
\captionof{figure}{Text}% <- verschoben
\end{minipage}
\qquad
\begin{minipage}[t]{0.45\textwidth}
\captionof{figure}{Text}% <- verschoben
\end{minipage}
\end{flushleft}
\end{document}
Meine Zuweisung an yshift gefällt mir nicht besonders, aber bis einem anderen Leser eine bessere Lösung dazu einfällt, dürfte das Ergebnis Deinem Wunsch recht nahe kommen.

von Gast » Mi 8. Nov 2017, 20:28

Ja, genau.
Wie kann man die beiden Diagramme nun auf die gleiche Höhe bekommen?
Da die x-Achsen-Beschriftung nicht gleich lang ist, verschiebt es das eine nach oben...

So, dass das Wort Antworten dann einen grösseren Abstand hat zu A,B,C und Ja, Nein. Denn so können auch die Diagramme auf gleicher Höhe stehen..

von Bartman » Mi 8. Nov 2017, 19:19

Suchst Du so etwas?
\documentclass[12pt,a4paper]{report} 
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest} 
\usetikzlibrary{arrows.meta} 
\definecolor{myorange}{rgb}{1,0.3,0} 
\usepackage{caption} 
\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc} 
\usepackage{showframe}

\begin{document} 
%\noindent 
\begin{flushleft}
\pgfplotsset{
	height=4cm,
	scale only axis, 
	axis lines=left, 
	x axis line style={|[left]-|[right]}, 
	y axis line style={|[right]-|[left]}, 
	ylabel=Anzahl, 
	ymin=0,
	ymajorgrids, 
	xlabel=Antworten, 
	xticklabel style={
		anchor=east,
		rotate=45,
		align=center
	}, 
	ybar=0pt,
	nodes near coords
}
\begin{minipage}[t]{0.57\textwidth}
\begin{tikzpicture} 
\pgfplotstableread{ 
Antworten I 
{A}      5
{B}    2
{C}  3
}{\data}; 

\begin{axis}[
	width=7.5cm,
	ymax=6, 
	ytick={2,4,...,10},
	xtick={0,...,3},
	xticklabels={A,B,C},
	bar width=1.8cm,
	enlarge x limits={abs=1.4cm}
]
\addplot[fill=myorange]table[x expr=\coordindex,y=I]{\data}; 
\end{axis} 
\end{tikzpicture} 
\captionof{figure}{Text}
\end{minipage}
%\end{flushleft}
\qquad
%\begin{flushleft}
\begin{minipage}[t]{0.3\textwidth}
\begin{tikzpicture} 

\pgfplotstableread{ 
Antworten I 
{Ja}      7
{Nein}    3
}{\data}; 

\begin{axis}[
	width=3.5cm,
	ymax=8,
	ytick={2,4,6,8}, 
	xtick={0,...,2},
	xticklabels={Ja,Nein}, 
	bar width=1cm,
	enlarge x limits={abs=1cm}
]
\addplot[fill=myorange]table[x expr=\coordindex,y=I]{\data}; 
\end{axis} 
\end{tikzpicture} 
\captionof{figure}{Text}
\end{minipage}
\end{flushleft}
\end{document}

Zwei Diagramme auf einer Linie: funktioniert nicht

von Gast » Mi 8. Nov 2017, 18:36

Hallo

Ich würde diese Diagramme gerne nebeneinander nehmen (auf einer Linie).
Aber irgendwie klappt es nicht.

Was muss ich ändern?
\documentclass[12pt,a4paper]{report} 
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest} 
\usetikzlibrary{arrows.meta} 
\definecolor{myorange}{rgb}{1,0.3,0} 
\usepackage{caption} 
\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc} 
\begin{document} 
\noindent 
\begin{flushleft}
\pgfplotsset{
  width=7.5cm,%
  height=4cm,% 
  scale only axis, 
  axis lines=left, 
  x axis line style={|[left]-|[right]}, 
  y axis line style={|[right]-|[left]}, 
  ylabel=Anzahl, 
  ymin=0,ymax=6, 
  ytick={2,4,6,8,10}, 
  ymajorgrids, 
  xlabel=Antworten, 
  xtick={0,...,3},
  xticklabels={A,B,C}, 
  xticklabel style={anchor=east,rotate=45,align=center}, 
  ybar=0pt, 
  /pgf/bar width=1.8cm,% 
  enlarge x limits={abs=1.4cm},% 
  nodes near coords
}
\begin{minipage}[t]{0.55\textwidth}
\begin{tikzpicture} 
\pgfplotstableread{ 
Antworten I 
{A}      5
{B}    2
{C}  3
}{\data}; 

\begin{axis}
\addplot[fill=myorange]table[x expr=\coordindex,y=I]{\data}; 
\end{axis} 
\end{tikzpicture} 
\captionof{figure}{Text}
\end{minipage}
\end{flushleft}
\qquad
\begin{flushleft}
\pgfplotsset{
  width=3.5cm,%  
  height=4cm,%
  scale only axis, 
  axis lines=left, 
  x axis line style={|[left]-|[right]}, 
  y axis line style={|[right]-|[left]}, 
  ylabel=Anzahl, 
  ymin=0,ymax=8, 
  ytick={2,4,6,8}, 
  ymajorgrids, 
  xlabel=Antworten, 
  xtick={0,...,2},
  xticklabels={Ja,Nein}, 
  xticklabel style={anchor=east,rotate=45,align=center}, 
  ybar=0pt, 
  /pgf/bar width=1cm,% 
  enlarge x limits={abs=1cm},%
  nodes near coords
}
\begin{minipage}[t]{0.3\textwidth}
\begin{tikzpicture} 

\pgfplotstableread{ 
Antworten I 
{Ja}      7
{Nein}    3
}{\data}; 

\begin{axis}
\addplot[fill=myorange]table[x expr=\coordindex,y=I]{\data}; 
\end{axis} 
\end{tikzpicture} 
\captionof{figure}{Text}
\end{minipage}
\end{flushleft}

\end{document}

Nach oben