图中每行的颜色不同

时间:2014-03-12 15:24:31

标签: python colors matplotlib

我正在尝试从文件中绘制一些数据。该文件包含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()

1 个答案:

答案 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')