【发布时间】:2020-05-03 21:46:20
【问题描述】:
我有以下代码来绘制阻尼振荡器的多个值的解:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
x = np.linspace(0, 50, 1000)
plt.figure(figsize=(9,7.5))
for mu in range(40,100,14):
plt.plot(x, np.exp(-(mu/500) * x), linestyle='--',alpha=0.4)
plt.plot(x, -np.exp(-(mu/500) * x), linestyle='--',alpha=0.4)
plt.plot(x, np.sin(np.sqrt(1 - ((mu/100)**2)) * x)*np.exp(-(mu/500) * x))
(输出图见下)
问题是 Pyplot 似乎在每次迭代中随机分配 3 条曲线的颜色(即 mu 的每个值),但我希望颜色可以“同步”,也就是说mu 的第一个值,np.exp(-(mu/500)、-np.exp(-(mu/500) * x) 和 np.sin(np.sqrt(1 - ((mu/100)**2)) * x)*np.exp(-(mu/500) * x) 的曲线相同(或接近)。
我通过使用 RGB 颜色元组在每次迭代中设置颜色,然后每次递增元组中的值来破解它,但这很乏味,而且您必须将增量与循环的迭代次数联系起来会通过吗?
有没有更优雅、更简洁的方法可以处理任意数量的迭代?
【问题讨论】:
-
这个 SO 答案应该可以满足您的需求stackoverflow.com/questions/24193174/…
标签: python python-3.x matplotlib seaborn