【发布时间】:2013-12-01 04:17:33
【问题描述】:
我正在绘制微分方程求解器(边界值问题)的进度图。每次迭代都会产生一组完整的函数评估 f(x),然后可以针对 x 进行绘制。在达到收敛之前,每个图(假设)都比上一个更接近正确的解决方案。顺序颜色图用于使较早的图形褪色,使较晚的图形饱和。
当迭代次数预先确定时,这可以正常工作:
import matplotlib.pyplot as plt
ax = plt.subplot(111)
cm = plt.get_cmap('OrRd')
ax.set_color_cycle([cm(1.*i/(iter+1)) for i in range(1,iter+2)])
ax.plot(x,y)
for k in range(iter):
# iterative solve
ax.plot(x,y)
但是,如果我使用收敛标准而不是预先确定的迭代次数,我将无法事先set_color_cycle。并且将该行放在循环之后不起作用。
我知道只有在达到收敛后才能存储我的中间结果和绘图,但这让我觉得很笨拙,因为除了在绘图上看到它们之外,我真的对所有中间结果没有用处。
所以这是我的问题: 1. 绘制后如何更改现有图形的颜色图? (这在 MATLAB 中很容易。) 2. 我如何在不干扰第一个集合的情况下在同一个图上 对另一个图形集合做同样的事情(例如,从不同的初始猜测,收敛到不同的解决方案),以便两个颜色图区分彼此的收藏。 (这在问题 1 的答案中应该很明显,但以防万一。)
非常感谢。
【问题讨论】:
标签: python colors matplotlib plot