我在使用 pgfplots 创建直方图时遇到以下问题。我是个初学者,所以可能会有一些明显的错误。当我编译这个时:
\begin{tikzpicture}
\begin{axis}[
xtick={-0.0003, -0.0002, -0.0001, 0, 0.0001, 0.0002, 0.0003},
xmin=-0.0003, xmax=0.0003,
ymin=0, ymax=90,
xticklabels={-3e-4, -2e-4, -1e-4, 0, 1e-4, 2e-4, 3e-4},
ytick={0, 10, 20, 30, 40, 50, 60, 70, 80},
ylabel=Number of Occurrences,
enlargelimits=0.05,
ybar interval=0.7,
]
\addplot coordinates {(-0.00027,3) (-0.000231,2) (-0.000192,19) (-0.000153,29) (-0.000114, 49) (-0.000075, 73) (-0.000036,77) (0.000003,87) (0.000042,77) (0.000081,47) (0.000120, 15) (0.000159, 13) (0.000198,6) (0.000237, 2) (0.000276, 1)};
\end{axis}
\end{tikzpicture}
我明白了:
因此,我不明白为什么:
1)x 轴上的刻度不在它们应该在的位置,而是都挤在轴的一个随机点上;
2) x10^-4 与图表相差甚远。
正如我所说,尽管这是一个简单的情节,但我可能理解错了。提前致谢!
答案1
我猜大家对它的含义有些误解ybar interval
。要了解这一点,请先查看我将指令上移的 MWE,
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ybar interval=0.7,
xtick={-0.0003, -0.0002, -0.0001, 0, 0.0001, 0.0002, 0.0003},
xmin=-0.00031, xmax=0.00031,
ymin=0, ymax=90,
%xticklabels={-3e-4, -2e-4, -1e-4, 0, 1e-4, 2e-4, 3e-4},
ytick={0, 10, 20, 30, 40, 50, 60, 70, 80},
ylabel=Number of Occurrences,
enlargelimits=0.05,
]
\addplot coordinates {(-0.00027,3) (-0.000231,2) (-0.000192,19) (-0.000153,29) (-0.000114, 49) (-0.000075, 73) (-0.000036,77) (0.000003,87) (0.000042,77) (0.000081,47) (0.000120, 15) (0.000159, 13) (0.000198,6) (0.000237, 2) (0.000276, 1)};
\end{axis}
\end{tikzpicture}
\end{document}
根据你问题的文本,这可能不是你想要的。不过,我想提醒你,pgfplots 手册第 87 页说
这意味着你可能想使用稍微不同的坐标,或者只是使用一个ybar
图。因为我的水晶球被盗了,我不确定你到底想干什么,就到此为止。不过,如果你在更新问题时指定这一点,我很乐意尝试一下。