我正在使用此代码绘制条形图:
\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 方向的限制,然后看起来像这样:
其中nodes near coords
成功地扩展了 y 轴,足以包含节点,但是enlarge x limits=0.15,enlarge y limits={value=0.15,upper}
,给出了间距更均匀的下图。