我开始学习 pgf-plot,这是我的第一个情节:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
ymin=0, ymax=70,
width=9.5cm,
symbolic x coords={a,b,c,d,e},
xtick=data,
bar width=15pt,
axis lines*=left,
ytick={0,10,...,70},
xticklabel style={text height=1.5ex},
ymajorgrids,
]
\addplot[fill=gray!40] coordinates {
(a,54)
(b,60)
(c,62)
(d,58)
(e,51)
};
\end{axis}
\end{tikzpicture}
\end{document}
现在我想从每个 yticks 到图的另一端绘制水平线。我试过了,xbar interval
但没有成功。我该怎么做?
编辑:没关系,找到了。这是选项xmajorgrids
。现在我无法做的是从水平网格中删除第一条线(从上方开始,y=70 处的 hline)。可能吗?
答案1
这是一种可能性:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
ymin=0, ymax=70,
width=9.5cm,
symbolic x coords={a,b,c,d,e},
xtick=data,
bar width=15pt,
axis lines*=left,
ytick={0,10,...,60}, %changed code
xticklabel style={text height=1.5ex},
ymajorgrids,
extra y ticks=70, %new code
extra y tick style={grid=none} %new code
]
\addplot[fill=gray!40] coordinates {
(a,54)
(b,60)
(c,62)
(d,58)
(e,51)
};
\end{axis}
\end{tikzpicture}
\end{document}
我所做的是从您的选项中删除您不想要的值ytick
,然后添加一个带有已删除值的额外勾号,但没有网格样式。