我尝试绘制多条线,使用viridis colourmap中的颜色。我想在图例中设置handlelength=0
,当我这样做时,图例现在完全空白。如果我不乱用handlelength
,那么它工作得很好(所以图例显示值,然后是正确颜色的一行)。如果我单独设置颜色(例如c='C'+str(i)
),这就可以工作。
下面的代码。matplotlib版本是3.6.2.,pytho是3.9.13
import matplotlib.pyplot as plt
import numpy as np
energy = np.linspace(40., 75., 36)
einds = np.linspace(0, 35, 8).astype(int)
fig, ax = plt.subplots(1, 1, figsize=(4,3), dpi=150)
for i in range(0, len(einds)):
ax.plot(energy, energy+i, c=plt.cm.viridis([einds[i]/einds.max()]),
label='{:.0f}keV'.format(energy[einds[i]]))
ax.grid()
leg=ax.legend(handlelength=0, handletextpad=0, fancybox=1,
framealpha=1, loc='upper right', labelcolor='linecolor')
for item in leg.legendHandles:
item.set_visible(False)
plt.tight_layout()
plt.show()
字符串
的数据
1条答案
按热度按时间vxbzzdmp1#
我是个白痴简单语法错误。应该是的
字符串
调用色彩Map表时没有方括号。
编辑:corect图包括-感谢gboffi的想法。
x1c 0d1x的数据