Python 使用matplotlib设置x轴

Python 使用matplotlib设置x轴,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有以下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, Amaz

我有以下
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)
但这给了我:


x轴范围不正确。如何使x轴范围在1001~1006之间?

如果数据正确,设置x轴的简单方法是
plt.xlim(10011006)
,但这不是问题所在


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

导入

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

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()

非常感谢!但是对于我的x轴,如何添加1001,~1005作为x标签?还有更多的附加到文件中,我们计划运行多次,我需要显示实际的版本号。哦,我明白了,+1.001e3是浮点数。谢谢没错,否则你可以。