是否有更快的方法在相同的x范围内绘制多条曲线而不是以下?
import numpy as np
import matplotlib.pyplot as plt
N = 100 # trajectories
p = 1e3 # points
x = np.linspace(0, 2*np.pi, p)
y = [np.sin(x)**i for i in range(N)]
color = iter(plt.cm.rainbow(np.linspace(0, 1, N)))
[plt.plot(x, y[i], c=next(color)) for i in range(N)]
plt.show())
当绘制许多轨迹(N~1e5)
时,此代码需要相当长的时间答案 0 :(得分:2)
我怀疑你是否会找到一个明显更快的解决方案。您可以尝试使用以下内容删除plot
周围的循环:
N = 200
x = np.linspace(0, 2*np.pi, 1e5)
y = np.array([np.sin(x)**i for i in range(N)])
plt.plot(x, y.transpose()) # I left out the colors for now..
对于少量线路,这似乎要快一点,但对于您的问题大小,它与原始解决方案一样快/慢。