所以我尝试了seaborn
和pandas
本机绘图功能,感觉我已经降级为使用纯matplotlib
,这令人失望,但这是我目前遇到的问题。
我有一个pandas
数据框,其中包含时间上的x值,幅度中的y值以及名为不确定性的列中的自定义错误值。我还有一个名为Filters的列。对于每个滤波器,我想基本上绘制一个误差条图,其中 x =时间,y =幅度,yerr =不确定性。这是一个示例数据(因为真实数据是专有的):
Image Filter Time Magnitude Uncertainty
File1 1 micron 0 12.1 0.008
File2 1.5 micron 0 13.4 0.01
File3 1 micron 1 12.9 0.01
File4 1.5 micron 1 13.8 0.013
File5 1 micron 2 14.2 0.014
File6 1.5 micron 2 14.66 0.0155
File7 1 micron 3 15.12 0.017
File8 1.5 micron 3 15.58 0.0185
File9 1 micron 4 16.04 0.02
File10 1.5 micron 4 16.5 0.0215
File11 1 micron 5 16.96 0.023
File12 1.5 micron 5 17.42 0.0245
File13 1 micron 6 17.88 0.026
File14 1.5 micron 6 18.34 0.0275
File15 1 micron 7 18.8 0.029
File16 1.5 micron 7 19.26 0.0305
File17 1 micron 8 19.72 0.032
File18 1.5 micron 8 20.18 0.0335
File19 1 micron 9 20.64 0.035
File20 1.5 micron 9 21.1 0.0365
因此,在单个图上,我想要一系列带有错误栏(基于不确定性列)的点,对应于该过滤器(1微米或1.5微米)。
如果我在seaborn
中执行此操作,我会收到以下信息:
我无法使用errorbar执行地图(如上面一行中所述),因为它声称:
“ValueError:yerr必须是标量,与y或2xN的尺寸相同。”
如果我直接在pandas
尝试此操作,我会收到以下信息:
这些都不是我想要的。我认为pandas
和seaborn
应该可以缓解所有这些问题,并且可以更轻松,更轻松地完成这类工作,而不必像将其读入numpy
genfromtxt那样做一些人为的废话,排序通过过滤器等