如何使用 pgfplots 从数据文件创建加权直方图?

如何使用 pgfplots 从数据文件创建加权直方图?

关于如何从数据文件创建直方图,已经有一个问题并给出了很好的答案:

如何使用 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。

相关内容