Gráfico de barras logarítmicas

Gráfico de barras logarítmicas

Atualmente estou tentando criar um diagrama, com escala logarítmica no eixo y. Isso funciona principalmente, exceto que o valor de nodes near coordsestá errado. Sem ymode=logele mostra, por exemplo, 20551 como rótulo. Com ymode=logele mostra 9,93. É possível obter o comportamento do modo linear? (Portanto, ele exibe novamente 20551 em vez de 9,93)

E é possível centralizar automaticamente a legenda?

\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}

Saída atual: Saída atual

Saída desejada: Saída desejada

Responder1

Você pode centralizá- legendlo colocando-o na posição 0.5(sem unidades) que representa o ponto médio de cada eixo. Você também pode usar a âncora da legenda.

\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}

insira a descrição da imagem aqui

informação relacionada