我正在尝试从文件中绘制一些数据。该文件包含13列,但我只想绘制第一列和第四列。此外,有多个文件,我想在同一个图上绘制它们。我成功地在图上显示了线条。我添加了用于绘制数组的代码。问题是我希望每个文件都有不同的颜色,但我的代码对所有文件都是一样的。我怎么能纠正它? 谢谢。
# gen_len is an array, same for all files
# gen_number is an array contains information
# of files
colors="bgrcmyk"
index=0
for gen in gen_number:
plt.plot(gen,gen_len,color=colors[index])
index=index+1
plt.savefig('result.png')
plt.show()
答案 0 :(得分:0)
更优雅的文件阅读解决方案是使用numpy的genfromtxt,它可以只导入您想要的列,也可以忽略以某个字符开头的行(comments='#'
关键字)。我认为这段代码可以随心所欲:
import numpy as np
import matplotlib.pyplot as plt
import sys
colors="bgrcmyk"
for i in range(1,len(sys.argv)):
gen,gen_len=np.genfromtxt(sys.argv[i],usecols=(0,3),unpack=True,comments='#')
plt.plot(gen,gen_len,c=colors[i])
plt.savefig('result.png')