当我尝试绘制文件中的一些数据时,我遇到了 pgfplots 问题。我使用以下代码
\begin{figure}[p]
\centering
\begin{tikzpicture}
\begin{axis}[ybar interval,xtick=,width=\textwidth]
\addplot+[hist={data=x,bins=30}]
file {Data/Poisson/Poisson_Cs137_150.TKA};
\end{axis}
\end{tikzpicture}
\caption[]{}
\end{figure}
至于箱数,我使用了数据集的最大值(仅包含整数),因为我希望每个整数都有一个箱。问题是结果如下:
如您所见,有一些缺失的列,而 Matlab 正确显示了缺失的列(我在数据集中检查,值 8 出现了多次!)。
有人知道问题出在哪里吗?
附录:这是我的序言
\documentclass[%
10pt,%
a4paper,%
onside,%
headinclude,%
footinclude,%
BCOR5mm,%
captions=tableheading]%
{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
%\usepackage[english]{babel}
\usepackage{indentfirst}
\usepackage{mathtools,amsmath}
\renewcommand{\vec}{\mathbold}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\usepackage{booktabs}
\usepackage{pgfplots}
\pgfplotsset{%
compat=newest,%
/pgf/number format/use comma,%
/pgf/number format/1000 sep={\,},%
/pgf/number format/min exponent for 1000 sep=4}
\usepackage[%
output-decimal-marker={,}]
{siunitx}
\usepackage{caption}
\usepackage{subfig}
\usepackage[%
nochapters,%
beramono,%
eulermath,%
pdfspacing,%
listings]%
{classicthesis}
此外,很抱歉我无法提供 MWE,但我无法使用任意短数据集重现该问题(对于具有较少箱体的数据集,pgfplots 可以正常工作……)
编辑1:我注意到,如果我们从 0(缺失)开始计算列,则第 5 列位于标签 5 的正上方,而第 20 列位于标签 20 的右侧……也许缺失的列代表非整数值?可能吗?
编辑2:这是 MWE
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{%
compat=newest,%
/pgf/number format/use comma,%
/pgf/number format/1000 sep={\,},%
/pgf/number format/min exponent for 1000 sep=4}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ybar,xtick=,width=\textwidth]
\addplot+[hist={data=x,bins=30}]
file {Data/Poisson/Poisson_Cs137_150.TKA};
\end{axis}
\end{tikzpicture}
\end{document}
以下是数据:
16
13
12
13
12
11
10
16
11
19
12
18
14
12
13
16
8
9
13
13
12
14
10
14
15
15
11
16
17
9
15
18
11
18
7
8
13
17
16
8
21
17
7
5
9
13
13
13
14
16
10
12
10
10
15
13
11
14
15
15
11
17
13
8
11
14
13
9
12
17
13
18
10
11
8
10
25
17
9
16
13
10
14
15
12
17
21
8
14
13
10
13
16
21
12
11
19
15
8
10
9
17
7
13
12
7
10
12
13
12
11
15
9
14
11
16
17
13
11
12
12
15
9
15
9
9
6
11
8
9
12
15
11
14
15
13
14
12
16
18
10
12
23
15
13
8
11
10
13
12
14
12
12
15
10
16
11
11
20
12
10
11
20
14
19
9
11
14
12
13
15
13
12
10
11
12
11
15
11
11
17
11
18
8
14
19
9
21
6
13
15
19
13
12
7
5
9
16
18
16
20
8
14
15
18
11
14
9
23
15
11
12
12
16
8
18
13
16
17
15
14
11
21
11
15
13
12
13
8
13
15
12
12
18
19
15
15
12
13
15
14
9
15
15
17
4
10
11
16
10
8
12
14
17
12
10
12
13
16
20
13
20
13
12
14
13
12
14
11
16
13
6
11
12
13
13
17
7
12
22
11
19
14
17
18
30
19
19
12
6
8
24
11
14
20
12
16
10
12
17
14
18
8
13
13
15
10
18
15
13
13
12
17
11
15
11
8
13
12
15
15
8
19
17
13
14
11
10
10
18
16
12
11
9
13
10
16
14
7
11
16
19
16
10
16
18
6
16
13
7
10
12
9
11
12
16
11
23
15
8
9
11
9
9
10
11
14
17
9
12
13
11
13
13
12
15
11
13
17
12
13
15
17
10
12
13
9
12
9
18
7
8
10
15
14
16
10
18
13
9
22
17
8
12
17
9
12
11
6
11
12
7
9
12
15
18
12
11
11
9
11
14
12
10
11
7
10
17
11
17
12
11
14
13
11
16
14
14
10
14
10
9
12
7
13
10
22
8
13
15
15
14
22
10
11
11
12
20
14
12
16
14
17
13
12
12
19
13
17
14
12
14
18
13
9
12
11
12
16
12
14
15
11
14
9
14
10
15
16
17
13
13
15
11
15
14
15
13
10
12
14
18
13
7
15
15
10
13
13
16
最后这是具有相同数据的 Matlab 直方图:
答案1
问题在于您根据数据指定的箱子数量。
对于您的数据,最小值为4
,最大值为30
。您要求将此范围划分为 30 个间隔,因此对于您的数据,这些间隔的长度将小于1
。由于您的数据仅包含整数,因此这些箱子中的一些箱子很可能是空的。
您可以减少箱子的数量,或者可能更相关地指定数据范围的最大值和最小值:
\documentclass[%
10pt,%
a4paper,%
onside,%
headinclude,%
footinclude,%
BCOR5mm,%
captions=tableheading]%
{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
%\usepackage[english]{babel}
\usepackage{indentfirst}
\usepackage{mathtools,amsmath}
\renewcommand{\vec}{\mathbold}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\usepackage{booktabs}
\usepackage{pgfplots}
\pgfplotsset{%
compat=newest,%
/pgf/number format/use comma,%
/pgf/number format/1000 sep={\,},%
/pgf/number format/min exponent for 1000 sep=4}
\usepackage[%
output-decimal-marker={,}]
{siunitx}
\usepackage{caption}
\usepackage{subfig}
\usepackage[%
nochapters,%
beramono,%
eulermath,%
pdfspacing,%
listings]%
{classicthesis}
\begin{document}
\begin{figure}[p]
\centering
\begin{tikzpicture}
\begin{axis}[ybar interval,xtick=,width=\textwidth]
\addplot+[hist={data=x,bins=30,data max=30,data min=0}]
file {Poisson_Cs137_150.TKA};
\end{axis}
\end{tikzpicture}
\caption[]{}
\end{figure}
\end{document}