我创建了一个带有 x 坐标标签的条形图。但如果我不输入 xmin/xmax,则只会出现第一条和最后一条的一半。如果我添加 xmax,它会显示在轴上。
\begin{figure}[h!]
\small
\begin{tikzpicture}
\begin{axis}[%
width=3.5in,
height=1.5in,
axis x line=center,
axis y line=left,
symbolic x coords={0,Choice1,Choice2 Here,Choice3 Here,Choice4 Goes Here,Last Choice, 1},
ymin=0, ymax=2,
xmin=0, xmax=1,
nodes near coords,
ylabel style={align=center},
ylabel={Mean days\\per month},
x tick label style={font=\small,text width=1cm,align=center},
ybar]
\addplot[color=blue,fill] coordinates {(Choice1,0.6)(Choice2 Here,0.1) (Choice3 Here,1.6)};
\addplot[color=black,shade] coordinates {(Choice4 Goes Here,0.9) (Last Choice,0.9)};
\end{axis}
\end{tikzpicture}
\end{figure}
答案1
不要设置xmin
、ymin
、xmax
、的所有值,而是ymax
使用enlargelimits=true
:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{figure}
\small
\begin{tikzpicture}
\begin{axis}[%
width=3.5in,
height=1.5in,
axis x line=center,
axis y line=left,
symbolic x coords={Choice1,Choice2 Here,Choice3 Here,Choice4 Goes Here,Last Choice},
enlargelimits=true,
ymin=0,
nodes near coords,
ylabel style={align=center},
ylabel={Mean days\\per month},
x tick label style={font=\small,text width=1cm,align=center},
ybar]
\addplot[color=blue,fill] coordinates {(Choice1,0.6) (Choice2 Here,0.1) (Choice3 Here,1.6)};
\addplot[color=black,shade] coordinates {(Choice4 Goes Here,0.9) (Last Choice,0.9)};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
作为杰克在评论中建议,使用条形图时,建议明确将原点包含在轴范围中(在这种情况下,ymin=0
除了使用之外enlargelimits
)。
顺便说一句,我建议您不要使用过于严格的[!h]
浮动放置选项;使用限制较少的选项,或者根本不要使用。