使用matplotlib设置xaxis

2024-10-03 04:34:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下masterResult.csv文件:

DATE,    DATASET,       BUILD        Col1   Col2 Col3
5/3/16,  Amazon,        1001         1113   344  169
5/3/16,  Amazon,        1002         1113   344  169
5/3/16,  Amazon,        1005         1113   344  169
5/3/16,  Amazon,        1006         1113   344  169

我想用matplotlib画一个图。你知道吗

我的代码是:

per_data=genfromtxt('masterResult.csv',delimiter=',',names=True)
for name in per_data.dtype.names[2:]:    
    plt.plot(per_data['BUILD'], per_data[name], label=name)

但这给了我:graph for masterResult.csv

x轴范围不对。如何使x轴范围在1001~1006之间?你知道吗


Tags: 文件csvnamebuildamazondatadatenames
2条回答

导入:

您可以使用不同的parameters来优化导入:

data = np.genfromtxt('masterResult.csv', skip_header=1, usecols=(2,3,4,5), dtype="i8", autostrip=True)

print data
# [[1001 1113  344  169]
#  [1002 1113  344  169]
#  [1005 1113  344  169]
#  [1006 1113  344  169]]

绘图

最后是一个简单的数据图:

draw = plt.plot(data[:,0], data[:,range(1,4)], ' o')
plt.legend(draw, ('Col1', 'Col2', 'Col3'))
plt.xlabel("Build")
plt.show()

enter image description here

如果数据正确,设置xaxis的简单方法是plt.xlim(1001,1006),但这不是问题所在。你知道吗

为什么你的x轴是错误的,首先是因为你的数据文件不是一个正确的csv文件。构建列和后续列之间没有逗号分隔,这会混淆numpy。如果您直接查看peru数据,您将看到BUILD根本没有设置为数字。您要么需要一致地添加逗号,要么将其作为制表符/空格分隔的数据。一般来说,如果事情看起来非常不对劲,那么直接查看数组而不是仅仅绘制数组是很有用的。你知道吗

相关问题 更多 >