在matplotlib中使用色图绘制线图

3

我很新于Python和Matplotlib,想要创建一个带有不同颜色线条的图。我知道必须使用一种颜色映射(colormap),但不确定如何操作。所以我写了一个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个回答

3
我将回答有关色图的问题。您可以使用karg颜色来指定一个元组的RGB颜色...这在文档中有详细的解释。
此外,您可以以许多奇怪和精彩的方式指定颜色,包括完整的名称(“green”)、十六进制字符串(“#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


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