感谢 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=center
中x 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}