我无法从文件中打印数据,更准确地说,是从第一行打印数据。第一行的数据在绘图中总是被跳过,我不知道为什么会发生这种情况。有人知道如何解决这个问题吗
我附上代码:
import numpy as np
import matplotlib.pyplot as plt
fname1 = 'data.txt'
data1 = np.genfromtxt(fname1, names=True)
cols1 = data1.dtype.names
ax1 = plt.subplot(111)
ax1.grid(False)
plt.errorbar(data1[cols1[0]], data1[cols1[1]], yerr=[data1[cols1[2]],
data1[cols1[3]]], fmt='o', markersize=5, color='blue')
plt.setp(ax1.get_xticklabels(), visible=True)
plt.ylabel("PI")
plt.xlabel("MJD")
plt.savefig("test.png")
#plt.subplots_adjust(wspace=0, hspace=0)
plt.show()`
如果
data.txt
的第一行包含列名,那么问题的解决方案应该有效。因为显然没有,所以我假设数据文件中没有列名如果数据文件中没有列名,请不要使用
names=True
。删除此参数。很明显,不能使用列名来索引数组。因此,您不需要data1[columnname]
,而需要使用提供行和列编号的常用方法对数组进行索引从Docs:
如果
names
是True
,则从第一个skip\u头行之后的第一个有效行读取字段名。如果名称是一个序列或由逗号分隔的名称组成的单个字符串,则这些名称将用于定义结构化数据类型中的字段名称。如果names为None,则将使用数据类型字段的名称(如果有)我想
data1 = np.genfromtxt(fname1, names=False)
将解决这个问题相关问题 更多 >
编程相关推荐