Ich versuche gerade, ein Diagramm mit einer logarithmischen Skala auf der Y-Achse zu erstellen. Das funktioniert größtenteils, außer dass der Wert nodes near coords
falsch ist. Ohne ymode=log
wird beispielsweise 20551 als Beschriftung angezeigt. Mit ymode=log
wird 9,93 angezeigt. Ist es möglich, das Verhalten des linearen Modus zu erhalten? (So dass wieder 20551 statt 9,93 angezeigt wird)
Und ist es möglich, die Legende automatisch zu zentrieren?
\begin{tikzpicture}
\begin{axis}[
width=0.8\textwidth,
ybar,
enlargelimits=0.15,
ylabel={\#Pathes},
ymode=log,
log ticks with fixed point,
xlabel={Test},
symbolic x coords={1 - 10, 11 - 100, 101 - 1000, 1001 - 10000, >10000},
xtick=data,
nodes near coords={\pgfmathprintnumber{\pgfplotspointmeta}},
nodes near coords align={vertical},
legend style={at={(0,-2.5em)}, draw=none, anchor=north, legend columns=-1, legend style={/tikz/every even column/.append style={column sep=0.5cm}}}
]
\addplot coordinates {(1 - 10, 20551) (11 - 100, 19784) (101 - 1000, 2436) (1001 - 10000, 149) (>10000, 12)};
\addplot coordinates {(1 - 10,4) (11 - 100,4) (101 - 1000,4) (1001 - 10000, 0) (>10000, 0)};
\legend{used,understood,not understood}
\end{axis}
\end{tikzpicture}
Aktueller Output:
Gewünschte Ausgabe:
Antwort1
Sie können legend
es zentrieren und an einer Position 0.5
(ohne Einheiten) platzieren, die den Mittelpunkt jeder Achse darstellt. Sie können auch den Legendenanker verwenden.
\documentclass[tikz,border=2mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width=0.8\textwidth,
ybar,
enlargelimits=0.15,
ylabel={\#Pathes},
ymode=log,
log ticks with fixed point,
xlabel={Test},
symbolic x coords={1 - 10, 11 - 100, 101 - 1000, 1001 - 10000, >10000},
xtick=data,
nodes near coords={\pgfmathprintnumber{\pgfplotspointmeta}},
nodes near coords align={vertical},
legend style={at={(0.5,-2.75em)},anchor=north, draw=none, anchor=north, legend columns=-1, legend style={/tikz/every even column/.append style={column sep=0.5cm}}}
]
\addplot coordinates {(1 - 10, 20551) (11 - 100, 19784) (101 - 1000, 2436) (1001 - 10000, 149) (>10000, 12)};
\addplot coordinates {(1 - 10,4) (11 - 100,4) (101 - 1000,4) (1001 - 10000, 0) (>10000, 0)};
\legend{used,understood,not understood}
\end{axis}
\end{tikzpicture}
\end{document}