У меня есть следующий код для построения решения для нескольких значений демпфированного осциллятора:
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, и затем каждый раз увеличивая значения в кортеже, но это утомительно, и вам нужно t ie приращения до количество итераций, через которое l oop пройдет go?
Существует ли более элегантный и лаконичный способ сделать это, который может работать с любым количеством итераций?
![enter image description here](https://i.stack.imgur.com/8HlC4.png)