我对python和matplotlib很新,我想创建一个不同颜色的线条。我知道我必须使用色彩图,但我不确定如何。所以我有一个for循环:
for i in range(len(params)):
centers,fN = graph.createHistogram(values = NHI[i])
for j in range(len(centers)):
if params[i]!=fidVal:
vals[j] = (np.log10(origfNHI[j]/fN[j]))/(fidVal-params[i])
plt.plot(centers,vals)
我想根据params[i]
和fidVal
之间的差异为每一行提供不同的颜色。如果fidVal - params[i]
是负数,我希望该行非常红,如果是负数,我希望它不是红色。同样,如果fidVal - params[i]
为正,我希望它基于该值为蓝色。最后,我希望将颜色映射到将在图上显示的颜色条上。
或者,当我使用plt.plot()
时,有没有办法指定行的rgb颜色?比如,我可以说plt.plot(centers,vals,Color(0,0,0))
吗?
我应该用什么代码来解决这个问题?
答案 0 :(得分:3)
我会回答有关色彩图的问题。你可以使用 karg 颜色来指定带有元组的rgb颜色......在documentation中有很好的解释。
“此外,你可以用许多奇怪而奇妙的方式指定颜色,包括全名('绿色'),十六进制字符串('#008000'),RGB或RGBA元组((0,1,0) ,1))或灰度强度为字符串('0.8')。其中,字符串规范可用于代替fmt组,但元组形式只能用作kwargs。“
这里有一个非常简单的例子:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,1,1000)
n=50
for i in range(1,n):
y = i/float(n)*x**2
plt.plot(x,y,color=(i/float(n),(i/float(n))**4,(i/float(n))**2))
ax = plt.gca()
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)
plt.show()