子图图例显示错误的颜色

时间:2020-04-23 13:02:48

标签: python python-3.x matplotlib legend

我对剧情图例的颜色分配感到有些惊讶。我正在绘制值并在循环中分配颜色。该代码粘贴在下面。

   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行到结尾)时,结果就正确了。有想法吗?

0 个答案:

没有答案