3

我对 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]是正数,我希望它基于该值是蓝色的。最后,我希望将颜色映射到将显示在绘图上的颜色条上。

或者,有没有一种方法可以在我使用时指定线条的 rgb 颜色plt.plot()?比如,我能说plt.plot(centers,vals,Color(0,0,0))吗?

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

4

1 回答 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()

在此处输入图像描述

于 2013-07-03T17:03:55.383 回答