gpt4 book ai didi

wolfram-mathematica - 使用 Mathematica 的带有 x 和 y 错误的 ErrorListPlot 中 ErrorBarFunction 的最小缩放宽度

转载 作者:行者123 更新时间:2023-12-04 04:06:07 24 4
gpt4 key购买 nike

我有一个包含 x 和 y 错误的数据集。通常,y 误差大约为 y 值的 2% 到 10%。然而,x 误差在 x 值的 0.01% 到 5% 之间变化很大。

我目前正在使用以下工具绘制我的数据:

ErrorListPlot[ errorPlotData[#], 
ImageSize -> 800,
PlotRange -> All,
ErrorBarFunction -> err]

err 定义为:

err[coords_, errs_] := {
Opacity[0.2],
Rectangle[
coords + {errs[[1, 1]], errs[[2, 1]]},
coords + {errs[[1, 2]], errs[[2, 2]]}
]
}

这取自 ErrorBarFunction 上文档中的示例.然而,由于 x 方向上的一些小错误,绘图根本没有显示框:即框宽度太小,甚至无法显示一个像素,因此 x 或 y 错误都没有显示。

我需要编写一个具有最小错误框宽度的函数。

我试着做一些简单的事情,比如:

err[coords_, errs_] := Module[{x0, x1, y0, y1},
x0 = errs[[1, 1]];
x1 = errs[[1, 2]];
If[(x1 - x0) < 10^-6, x0 = 10^-6; x1 = -10^-6];
{Opacity[0.2],
Rectangle[coords + {x0, errs[[2, 1]]},
coords + {x1, errs[[2, 2]]}]}
];

几乎有效。但是,由于 x 轴上的范围可以从 +/-5e-3 到 +/-10e-3,该解决方案仅适用于较小范围的图和较大的 ImageSize 设置。

所以,我认为我需要使用某种“缩放”方式来获取坐标,但我无法使用它来工作。

有人有什么建议吗?

托梅克

编辑:示例数据:

In[1069]:= errorPlotData["70"][[1 ;; 20, All]]

Out[1069]= {{{0.0006131, 7314.3},
ErrorBar[1.9084*10^-7, 309.11]}, {{0.00060638, 7339.9},
ErrorBar[2.3891*10^-7, 310.03]}, {{0.00060042, 7401.7},
ErrorBar[4.9478*10^-8, 331.15]}, {{0.00059433, 7340.3},
ErrorBar[6.3614*10^-8, 348.5]}, {{0.00058777, 7351.5},
ErrorBar[1.9791*10^-8, 323.53]}, {{0.00058167, 7349.3},
ErrorBar[6.9976*10^-8, 335.46]}, {{0.00057494, 7405.8},
ErrorBar[3.6967*10^-7, 319.49]}, {{0.00056835, 7341.},
ErrorBar[3.4705*10^-7, 364.98]}, {{0.00056223, 7392.4},
ErrorBar[1.7317*10^-7, 336.12]}, {{0.00055588, 7398.},
ErrorBar[1.2794*10^-7, 353.29]}, {{0.00054985, 7344.3},
ErrorBar[3.5341*10^-8, 350.58]}, {{0.0005436, 7363.3},
ErrorBar[6.8562*10^-8, 371.04]}, {{0.00053714, 7426.6},
ErrorBar[3.0959*10^-7, 353.86]}, {{0.00053092, 7409.1},
ErrorBar[4.1915*10^-7, 366.35]}, {{0.00052528, 7385.},
ErrorBar[1.3006*10^-7, 361.69]}, {{0.00051836, 7464.1},
ErrorBar[1.2016*10^-7, 354.99]}, {{0.0005129, 7454.5},
ErrorBar[8.2698*10^-8, 336.79]}, {{0.00050656, 7404.3},
ErrorBar[2.0569*10^-7, 345.19]}, {{0.00050042, 7432.7},
ErrorBar[7.0682*10^-9, 327.78]}, {{0.00049395, 7475.4},
ErrorBar[1.138*10^-7, 343.1]}}

最佳答案

尝试将 EdgeForm 添加到矩形。我认为这可以解决矩形的问题根本不显示:

err[coords_, errs_] := Module[{x0, x1, y0, y1},
x0 = errs[[1, 1]];
x1 = errs[[1, 2]];
{Pink, EdgeForm[{Pink}], Rectangle[coords + {x0, errs[[2, 1]]},
coords + {x1, errs[[2, 2]]}], Blue, Point[coords]}];

关于wolfram-mathematica - 使用 Mathematica 的带有 x 和 y 错误的 ErrorListPlot 中 ErrorBarFunction 的最小缩放宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com