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是浮点数。谢谢没错,否则你可以。