python 画图颜色不够用?
使用连续的颜色谱
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import matplotlib.cm as cmx
import numpy as np
# define some random data that emulates your indeded code:
NCURVES = 100
values = range(NCURVES)
datas = [XRs[i][0].T- x[0].T for i in range(NCURVES)] # 需要绘制的曲线
fig = plt.figure()
ax = fig.add_subplot(111)
cm = plt.get_cmap('nipy_spectral')
cNorm = colors.Normalize(vmin=0, vmax=values[-1]) # 设置离散 value 的取值范围
scalarMap = cmx.ScalarMappable(norm=cNorm, cmap=cm)
lines = []
for idx in range(NCURVES):
colorVal = scalarMap.to_rgba(values[idx]) # 根据 value 提取颜色
colorText = (
'color: (%4.2f,%4.2f,%4.2f)'%(colorVal[0],colorVal[1],colorVal[2])
)
retLine = ax.plot(datas[idx],
color=colorVal,
label=colorText)
lines.append(retLine)
#added this to get the legend to work
handles,labels = ax.get_legend_handles_labels()
ax.legend(handles, labels, loc='upper right')
ax.grid()
plt.show()