В настоящее время я пытаюсь создать диаграмму с логарифмической шкалой по оси Y. Это в основном работает, за исключением того, что значение nodes near coords
неверно. Без ymode=log
него отображается, например, 20551 в качестве метки. С ymode=log
ним отображается 9,93. Возможно ли получить поведение линейного режима? (Так что он снова отображает 20551 вместо 9,93)
И возможно ли автоматически центрировать легенду?
\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}
Выходной ток:
Требуемый результат:
решение1
Вы можете центрировать legend
его, разместив в позиции 0.5
(без единиц), которая представляет собой среднюю точку каждой оси. Вы также можете привязать легенду.
\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}