在matplotlib中使用带有线图的Colormap

时间:2013-07-03 15:54:38

标签: python matplotlib colorbar

我对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))吗?

我应该用什么代码来解决这个问题?

1 个答案:

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

enter image description here