带有长 x 轴文本标签的图表看起来很丑

带有长 x 轴文本标签的图表看起来很丑

感谢 Caramdir 和 Alan Munn,我现在能够创建使用文本作为X轴标签。从功能上讲,它们非常完美,但有些看起来有点丑。自己看看吧:

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
             width=15cm,
             height=8cm,
             symbolic x coords={elso es masodrendu varosok,
                                falu es varos kozti atmenet,
                                funkcionalis ertelemben nem varos},
             x tick label style={font=\small},
             xtick=data,
             ymin=0,
             ymax=65,
             ylabel=\%,
             ylabel style={rotate=-90},
             ybar,
             bar width=45pt,
             ]
\addplot coordinates {
                      (elso es masodrendu varosok,36)
                      (falu es varos kozti atmenet,4)
                      (funkcionalis ertelemben nem varos,60)};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

% I have removed all non-English characters from the sample code
% but the image below was generated with the original strings.

现在,图表已经满足了我的所有需求,但如果我可以将文本标签分成至少两行,并将两个侧栏移近中心栏,图表会看起来更漂亮。遗憾的是,{falu es varos\\kozti atmenet} 不能用作有效X协调。

而且,在使用非数字坐标时,我也无法找到明确设置条形间距的方法。我尝试将条形宽度设置为更大的值,从而迫使它们彼此更接近,但不起作用。条形变得更粗,但它们的位置保持不变。

任何帮助将非常感激。

答案1

您可以将键添加到选项text width=<dimension>,align=centerx tick label style,以使刻度标签换行并居中。

减小图的宽度会使列更靠近。通过引入enlarge x limits=<value>,您可以将外部列移近中心。

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
             width=8cm,
             height=8cm,
             symbolic x coords={elso es masodrendu varosok,
                                falu es varos kozti atmenet,
                                funkcionalis ertelemben nem varos},
             x tick label style={font=\small,text width=1.7cm,align=center},
             xtick=data,
             ymin=0,
             ymax=65,
             ylabel=\%,
             ylabel style={rotate=-90},
             ybar,
             enlarge x limits=.3,
             bar width=45pt,
             ]
\addplot coordinates {
                      (elso es masodrendu varosok,36)
                      (falu es varos kozti atmenet,4)
                      (funkcionalis ertelemben nem varos,60)};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

替代文本

相关内容