关于如何从数据文件创建直方图,已经有一个问题并给出了很好的答案:
如何使用 TeX 计算 .csv 中值的直方图(绘制条形图)?
我的情况类似,我使用的代码与该问题中批准的答案基本相同,但就我而言,文件中的每个数据条目也具有权重。即,我有一个包含两列的表格:度量和权重。在计算直方图箱时,度量列中的每个数据点不以 1 的频率计数,而是由权重列定义的频率计数。我找不到任何关于如何修改图的频率计数行为hist
以考虑这些权重的文档。开箱即用可以吗?
这是我目前拥有的代码:
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots, pgfplotstable}
\usepgfplotslibrary{statistics}
\begin{document}
\begin{tikzpicture}
\pgfplotstableread[header=false]{
-0.928770 4.70650000e-08
-0.299800 0.00027664
1.2239000 0.00015706
-0.325590 0.00037748
-1.394800 0.00010935
-1.672700 0.00012530
-16.30100 8.08970000e-05
1.3411000 1.41510000e-05
-0.208830 3.22500000e-06
-20.56700 0.00030339
-5.851300 1.06270000e-05
-2.400000 7.91360000e-05
0.0274690 5.86580000e-05
-0.449670 0.00050059
-0.609090 0.00025153
6.4945000 0.00031208
-0.323260 6.17550000e-05
-0.731820 0.00011005
-0.101990 1.80110000e-05
-0.255170 6.37970000e-06
0.8010800 5.94810000e-05
-1.170300 0.00011584
-2.109700 6.93600000e-05
0.4504900 0.00039688
-3.959400 0.00027925
-17.01700 0.00034205
13.374000 8.05630000e-05
-0.783290 0.00065051
-0.209290 0.00029204
0.0253600 0.00068065
-0.316010 0.00049834
-0.284310 0.00056931
3.9096000 0.00011451
-6.210000 8.00440000e-05
-8.520500 0.00010193
-0.584620 9.61480000e-05
-0.481480 0.00051246
-9.908400 0.00030773
21.625000 5.33230000e-05
0.4616500 2.46780000e-05
-7.467300 0.00011440
-0.561220 1.86010000e-05
1.3631000 0.00010656
-0.021861 0.00023348
}\errdata
\begin{axis}[
ybar,
ymin=0]
\addplot +[
hist={
bins=21,
data min=-82,
data max=82}]
table [y index=0] {\errdata};
\end{axis}
\end{tikzpicture}
\end{document}
目前,此代码没有考虑第二列,这意味着在计算箱频率时每个数据点都算作 1。