用循环改变绘图中的颜色

5
我知道这个问题已经被问了很多次,但我需要在我的具体例子中得到帮助。我不知道为什么它不起作用。
最终我想要150条不同的线路,但现在我只想用10条来测试它。
目标是遍历颜色映射表,我的代码看起来像这样:
import matplotlib.pyplot as plt

jet= plt.get_cmap('jet')
colors = iter(jet(np.linspace(0,1,10)))
for k in range(0,10):
    plt.plot(u_ordered[0*k:42*(k+1)], T_ordered[0*k:42*(k+1)], 'o',
color=next(colors))


plt.xscale('log')
plt.ylabel('T [K]')
plt.xlabel('log u [KJ/g]')
plt.title('T - U (at const. Rho) Plot')
plt.legend(loc="lower right")
plt.savefig('T_u_const_rho_Plot1.pdf')
plt.show()

我一直收到这个错误,对所有的 150 行都是如此: 在此输入图像描述
1个回答

11

在每个循环迭代中,您都会在已经绘制的图形上进行绘制。请尝试将绘图部分替换为:

在您的循环内,每次迭代时都创建一个新的绘图对象并绘制它。这样就可以避免在已有图像上重绘。

plt.plot(u_ordered[42*k:42*(k+1)], T_ordered[42*k:42*(k+1)], 'o', color=next(colors))

就是这样!非常感谢! :) - Shaun
你改了什么? - Marine Galantin
2
@MarineGalantin:使用42*k代替0 - fuglede
我明白了,谢谢你的答案,我自己想不出来。 - Marine Galantin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接