Python 使用matplotlib向包含文件数据的图形中添加错误条

Python 使用matplotlib向包含文件数据的图形中添加错误条,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有一个名为J.txt的文件,它有3列数据,第三列是错误条(对称)的值,如下所示: 2454501.81752 0.0018087812 9.69699358080375E-005 2454537.77104 0.0030887732 0.0001610068 2454603.70872 0.0022500182 0.0001230047 2454640.56455 0.0013261298 7.57575739971879E-005 2454662.63581 0.0017888998 9.9

我有一个名为J.txt的文件,它有3列数据,第三列是错误条(对称)的值,如下所示:

2454501.81752 0.0018087812 9.69699358080375E-005
2454537.77104 0.0030887732 0.0001610068
2454603.70872 0.0022500182 0.0001230047
2454640.56455 0.0013261298 7.57575739971879E-005
2454662.63581 0.0017888998 9.91743434734387E-005
我有以下代码:

import numpy as np
import matplotlib.pyplot as plt

plt.plotfile('J.txt', delimiter=' ', cols=(0, 1),  
             names=('V', 'V-B'), marker='o', markersize=2, markeredgewidth=0.1, markeredgecolor='black', 
             color= 'green', label= "Cluster", linestyle='None', newfig=False)

plt.show()
我一直在尝试将错误条添加到绘图中,因为我不知道如何将文件中的列与
plt.errorbar
关联(如果这是我应该使用的)


干杯。

在Will和roadrunner66的建议之后,我找到了这样一个解决方案:

import numpy as np
import matplotlib.pyplot as plt

col0 = np.genfromtxt('J.txt', usecols=(0), delimiter=' ', dtype=None)
col1 = np.genfromtxt('J.txt', usecols=(1), delimiter=' ', dtype=None)
col2 = np.genfromtxt('J.txt', usecols=(2), delimiter=' ', dtype=None)

fig, ax1 = plt.subplots()

ax1.plot(col0, col1, c='b', marker='o', markeredgewidth=0, linewidth=0, markersize=3)
ax1.errorbar(col0, col1, yerr=col2, linestyle=' ', c= 'b')
plt.show()

Numpy的
np.genfromtxt
提供了我所需要的数据,matplotlib的
ax1.errorbar
让我使用Y轴的
yerr
值来放置错误条。

在Will和roadrunner66的建议之后,我挖掘出了这样的解决方案:

import numpy as np
import matplotlib.pyplot as plt

col0 = np.genfromtxt('J.txt', usecols=(0), delimiter=' ', dtype=None)
col1 = np.genfromtxt('J.txt', usecols=(1), delimiter=' ', dtype=None)
col2 = np.genfromtxt('J.txt', usecols=(2), delimiter=' ', dtype=None)

fig, ax1 = plt.subplots()

ax1.plot(col0, col1, c='b', marker='o', markeredgewidth=0, linewidth=0, markersize=3)
ax1.errorbar(col0, col1, yerr=col2, linestyle=' ', c= 'b')
plt.show()

Numpy的
np.genfromtxt
提供了我需要的数据,matplotlib的
ax1.errorbar
允许我使用Y轴的
yerr
值来放置错误条。

如果您想使用
plt.plotfile()
,这可能没有帮助,但您可以先使用Numpy和
np.loadtxt()一起加载数据
,然后使用,将第三列提供给
yerryeerr
(或
xerr
)关键字。我同意威尔·巴恩斯的观点。将数据加载和打印分开。通过这种方式,您还可以在两个操作之间测试数据读入后的实际外观。如何将水平条设置为错误条的上限和下限?如果要使用
plt.plotfile()
,这可能没有帮助,但您可以先使用numpy和
np.loadtxt()加载数据
,然后使用,将第三列提供给
yerryeerr
(或
xerr
)关键字。我同意威尔·巴恩斯的观点。将数据加载和打印分开。这样,您还可以在两个操作之间测试数据读入后的实际外观。如何将水平条设置为错误条的上限和下限?如何将水平条设置为错误条的上限和下限?您需要在
errorbar
,否则它将默认为0,并且不会显示水平条。对于我的例子,我有:ax1.errorbar(col0,col1,yerr=col2,linestyle='',c='b',capsize=1)如何将水平条设置为错误条的上限和下限?您需要为
errorbar
中的
capsize
参数设置一个值,否则它将默认为0,并且不会显示水平条。对于我的例子,我会有:ax1.errorbar(col0,col1,yerr=col2,linestyle='',c='b',capsize=1)