我在一个图上绘制多条线,我希望它们贯穿颜色图的光谱,而不仅仅是相同的 6 或 7 种颜色。代码类似于:
for i in range(20):
for k in range(100):
y[k] = i*x[i]
plt.plot(x,y)
plt.show()
使用颜色图“jet”和我从 seaborn 导入的另一个颜色图,我得到了以相同顺序重复的相同 7 种颜色。我希望能够绘制多达 60 条不同的线条,所有线条都具有不同的颜色。
最佳答案
Matplotlib 颜色图接受一个参数(0..1
,标量或数组),您可以使用该参数从颜色图中获取颜色。例如:
col = pl.cm.jet([0.25,0.75])
为您提供具有(两种)RGBA 颜色的数组:
array([[ 0. , 0.50392157, 1. , 1. ], [ 1. , 0.58169935, 0. , 1. ]])
您可以使用它来创建 N
种不同的颜色:
import numpy as np
import matplotlib.pylab as pl
x = np.linspace(0, 2*np.pi, 64)
y = np.cos(x)
pl.figure()
pl.plot(x,y)
n = 20
colors = pl.cm.jet(np.linspace(0,1,n))
for i in range(n):
pl.plot(x, i*y, color=colors[i])
关于python - Matplotlib 通过颜色图绘制带有颜色的线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38208700/