我想在标尺图表上绘制此直方图(参见附图)。到目前为止,我的 MWE 如下:
\documentclass[tikz,border=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.15}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width = 1.00*\textwidth,
height = 8cm,
ybar=2*\pgflinewidth,
bar width=1pt,
ymajorgrids = true,
ybar interval=1.0,
xlabel = {Months},
ylabel = {Amount of Rainfall (cm)},
symbolic x coords={Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec},
ymin=0,
]
\addplot[style={blue,fill=green}]
coordinates {
(Jan,0.6) (Feb,1)
(Mar,2) (Apr,3.2)
(May,4) (Jun,4)
(Jul,4.5) (Aug,3)
(Sep,5) (Oct,5)
(Nov,0.7) (Dec,0)
};
\end{axis}
\end{tikzpicture}
\end {document}
请提供以下帮助:
- 十二月 (Dec) 的最后一个值未显示。我希望显示该值。
- 我需要绘图具有如附图所示的小网格线。
- 我希望条形图稍微透明一些,以便仍然可以看到网格线。
- 如果可能的话,请移除 MWE 中轴图的边界框。事实上,我需要图表与附图中的图表类似
答案1
1- 对于十进制,向中添加一个为零的虚拟值symbolic x coords
,比如说a
。
2- 对于次要网格线,请在环境中使用grid style
和major grid style
选项,例如:axis
grid=major,
grid=both,
grid style={line width=.1pt, draw=gray!30},
major grid style={line width=.2pt,draw=gray!60},
minor tick num=5
另外添加
xmin=Jan,
xmax=a,
ymin=0,
ymax=5
3- 为了透明度,请使用opacity
中的选项addplot
。
梅威瑟:
\documentclass[tikz,border=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.15}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width = 1.00*\textwidth,
height = 8cm,
ybar=2*\pgflinewidth,
bar width=1pt,
%ymajorgrids = true,
ybar interval=1.0,
xlabel = {Months},
ylabel = {Amount of Rainfall (cm)},
symbolic x coords={Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,a}, % Add a zero valued extra coord. for Dec.
grid=major,
grid=both,
grid style={line width=.1pt, draw=gray!30},
major grid style={line width=.2pt,draw=gray!60},
minor tick num=5,
xmin=Jan,
xmax=a,
ymin=0,
ymax=5,
]
\addplot[style={blue,fill=green!30,opacity=0.5}]
coordinates {
(Jan,0.6) (Feb,1)
(Mar,2) (Apr,3.2)
(May,4) (Jun,4)
(Jul,4.5) (Aug,3)
(Sep,5) (Oct,5)
(Nov,0.7) (Dec,0) (a,0)
};
\end{axis}
\end{tikzpicture}
\end {document}