如何创建符号 x 坐标而不丢失最后一栏

如何创建符号 x 坐标而不丢失最后一栏

我创建了一个带有 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

不要设置xminyminxmax、的所有值,而是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]浮动放置选项;使用限制较少的选项,或者根本不要使用。

相关内容