我对剧情图例的颜色分配感到有些惊讶。我正在绘制值并在循环中分配颜色。该代码粘贴在下面。
import matplotlib.pyplot as plt
angles2plot = [0.5, 1.0, 2.0, 3.0, 5.0, 8.0, 10.0, 15.0, 30.0,
150.0, 165.0, 170.0, 172.0, 175.0, 177.0, 178.0, 179.0, 180.0]
find_ang_step = {}
step = 0
for i in angles2plot:
find_ang_step[str(i)] = step
step += 1
fig, ax = plt.subplots(figsize=[16, 2])
for ang, val in find_ang_step.items():
ax.scatter(val, 0, s=6, c=val, cmap='jet_r', vmin=0, vmax=len(angles2plot),
label=ang)
ax.set_ylim(-1, 1)
ax.legend(ncol=len(angles2plot), markerscale=2.5, labelspacing=0,
handletextpad=0, columnspacing=0.1, fancybox=True,
loc=[0.01, 0.7])
plt.tight_layout()
问题是,如果我立即运行整个代码,图例将显示所有相同的颜色。 但是,有趣的部分是,当我第一次绘制情节(直到第1-14行),然后再放置图例(第15行到结尾)时,结果就正确了。有想法吗?