在标尺图表上绘制直方图。帮我画一下

在标尺图表上绘制直方图。帮我画一下

我想在标尺图表上绘制此直方图(参见附图)。到目前为止,我的 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}

直方图

请提供以下帮助:

  1. 十二月 (Dec) 的最后一个值未显示。我希望显示该值。
  2. 我需要绘图具有如附图所示的小网格线。
  3. 我希望条形图稍微透明一些,以便仍然可以看到网格线。
  4. 如果可能的话,请移除 MWE 中轴图的边界框。事实上,我需要图表与附图中的图表类似

答案1

1- 对于十进制,向中添加一个为零的虚拟值symbolic x coords,比如说a

2- 对于次要网格线,请在环境中使用grid stylemajor 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}

在此处输入图片描述

相关内容