matplotlib:依赖于迭代的灰度级着色线图

时间:2013-11-21 10:23:15

标签: python colors matplotlib plot interpolation

这里有相关的编程新手。我无法弄清楚如何在一系列迭代中绘制插值函数,其中随着迭代指数的增加,绘图将从黑色变为逐渐变浅的灰色阴影。

例如,

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d

for t in np.arange(0.,2., 0.4):
    x = np.linspace(0.,4, 100)
    y = np.sin(x-2*t) + 0.01 * np.random.normal(size=x.shape)
    yint = interp1d(x, y)
    plt.plot(x, yint(x))

plt.show()

产生 enter image description here

我希望蓝色正弦函数为黑色,其余部分随着t的增加而变得更轻和更灰色(向右)。我该怎么做?

谢谢大家的慷慨帮助!

1 个答案:

答案 0 :(得分:4)

请参阅:http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.plot

E.g。您可以将plt.plot(x, yint(x), color=(0.5, 0.5, 0.5))设置为灰线。您可以根据需要设置值(0.0为黑色,1.0为白色)。一个简单的例子:

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d

for t in np.arange(0.,2., 0.4):
    x = np.linspace(0.,4, 100)
    y = np.sin(x-2*t) + 0.01 * np.random.normal(size=x.shape)
    yint = interp1d(x, y)
    print t
    col = (t/2.0, t/2.0, t/2.0)
    plt.plot(x, yint(x), color=col)

plt.show()

enter image description here