我使用 Matplolib 和 Pandas 数据框创建了一个散点图,现在我想为其添加一个图例。这是我的代码:
colors = ['red' if x >= 150 and x < 200 else
'green' if x >= 200 and x < 400 else
'purple' if x >= 400 and x < 600 else
'yellow' if x >= 600 else 'teal' for x in myData.R]
ax1.scatter(myData.X, myData.Y, s=20, c=colors, marker='_', label='Test')
ax1.legend(loc='upper left', frameon=False)
这里发生的是,根据 的值myData.R,散点图中点的颜色会发生变化。所以,由于颜色是“动态的”,我在创建图例时遇到了很多麻烦。实际代码只会创建一个带有一个名为“测试”的标签的图例,附近没有任何颜色。
以下是数据示例:
X Y R
0 1 945 1236.334519
0 1 950 212.809352
0 1 950 290.663847
0 1 961 158.156856
我试过这个,但我不明白的是:
如何动态为图例设置标签?例如,我的代码说
'red' if x >= 150,所以在图例上应该有一个红色方块,其附近> 150。但由于我没有手动添加任何标签,我很难理解这一点。在尝试了以下之后,我只得到了一个带有单个标签“类”的图例:
`legend1 = ax1.legend(*scatter.legend_elements(), loc="左下", title="类")
ax1.add_artist(legend1)`
任何形式的建议表示赞赏!

