条形图中的第一条和最后一条

条形图中的第一条和最后一条

我正在尝试在条形图上放置 5 个条形,并在 x 轴上放置符号标签。以下代码几乎可以正常工作,但第一个和最后一个条形部分超出了图形区域。我查看了十几个类似问题的示例,但似乎找不到一个符合我的问题的示例(我希望所有条形都在图形区域中)。我的 WME(相信它的名字)是:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ybar,
                        bar width=40pt,
                        xlabel={Classes},
                        ylabel={Class Count},   
                        ymin=0,
                        ymax=60,
                        ytick ={0,10,20,30,40,50,60},
                        xtick =data,
                        axis x line=bottom,
                        axis y line=left,
                        symbolic x coords={0-10,11-20,21-30,31-40,41-50}
]
            \addplot plot[draw=black, fill=gray] coordinates {
                        (0-10, 5)
                        (11-20,30)
                        (21-30,50)
                        (31-40,20)
                        (41-50,15)
                        };
\end{axis}

\end{tikzpicture}
\end{document}

答案1

这是一种方法enlarge x limits

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
bar width=30pt,
xlabel={Classes},
ylabel={Class Count},   
ymin=0, ymax=60,
ytick ={0,10,20,30,40,50,60},
xtick =data,
axis x line=bottom,
axis y line=left,
symbolic x coords={0-10,11-20,21-30,31-40,41-50},
enlarge x limits=0.2,
]
\addplot plot[black, fill=gray] coordinates {
(0-10, 5)
(11-20,30)
(21-30,50)
(31-40,20)
(41-50,15)
};
\end{axis}
\end{tikzpicture}
\end{document}

条状图

enlarge x limits=0.5以下是具有和 的相同图表bar width=20pt

具有更多空间的条形图

使用 PGFPlots 时,您应始终使用\pgfplotsset{compat=...}。这将设置所使用的 PGFPlots 版本。PGFPlots 不断发展,新版本的行为将与旧版本不同。上述代码在不同compat级别下编译时不会有所不同。 -但这并不能保证输出在未来版本中不会改变或中断。这就是为什么对级别进行硬编码很重要的原因compat

相关内容