如何从 PGFPlots 包的图中排除负值?

如何从 PGFPlots 包的图中排除负值?

我正在使用此代码绘制条形图:

\documentclass[tikz,12pt]{standalone}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usetikzlibrary{arrows,decorations.pathmorphing,shadows,calc,intersections}
\usepackage{pgfplots}
\usetikzlibrary{pgfplots.groupplots}
\usepackage{xcolor}
\pgfplotsset{width=12cm,compat=1.9}
\tikzset{
%Define standard arrow tip
>=stealth'
}
\begin{document}
\pgfplotsset{every axis/.append style={
font=\normalsize\rmfamily,
line width=1 pt,
tick style={line width=.6pt}}}
\begin{tikzpicture}
  \begin{axis}[
    axis background/.style={shade,top color=gray,bottom color=white},
    height=8cm,
    ybar,
    ymin=0,
    bar width=1.2cm,
    minor y tick num=4,
    enlargelimits=0.15,
    legend style={at={(0.5,-0.2)},
      anchor=north,legend columns=-1},
    ylabel={Count},
    symbolic x coords={5--10 years,10--15 years, 15--20 years,20--25 years,Over 25 years},
        xtick=data,
        nodes near coords, 
        nodes near coords align={vertical},
        x tick label style={font=\normalsize,text width=1.5cm,align=center},
        ]    \addplot[fill=green!25!gray] coordinates {(5--10 years,32) (10--15 years,12) (15--20 years,3) (20--25 years,2) (Over 25 years,3)};

  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

我希望 y 最小值等于 0。我已设置:

...
ymin=0,
...

但正如您所见,它不起作用。

请帮忙解决这个问题。

其次,如何将值放入栏内?

先感谢您。

答案1

pgfplots 默认使用enlargelimits=0.15所有方向。
您可以将其更改为enlarge x limits=0.15仅扩大 x 方向的限制,然后看起来像这样:

放大 x 限制=0.15

其中nodes near coords成功地扩展了 y 轴,足以包含节点,但是enlarge x limits=0.15,enlarge y limits={value=0.15,upper},给出了间距更均匀的下图。

放大 x 限制=0.15,放大 y 限制={值=0.15,上限}

相关内容