这里有相关的编程新手。我无法弄清楚如何在一系列迭代中绘制插值函数,其中随着迭代指数的增加,绘图将从黑色变为逐渐变浅的灰色阴影。
例如,
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()
产生
我希望蓝色正弦函数为黑色,其余部分随着t的增加而变得更轻和更灰色(向右)。我该怎么做?
谢谢大家的慷慨帮助!
答案 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()