首页 > 解决方案 > 为 3D 两轴散点图制作 Matplotlib 图例

问题描述

我正在使用基于字典的 matplotlib 制作散点图,其中字典将二元素元组映射到整数值。元组表示的坐标被绘制出来,然后根据它映射到的整数的值着色。

xs = [tup[0] for tup in list(mydict.keys())]
ys = [tup[1] for tup in list(mydict.keys())]
colors = ['g' if outcome > 0 else 'r' for outcome in list(mydict.values())]
plt.figure()
plt.subplot(211)
plt.scatter(xs, ys, c = colors, alpha = 0.5, s = 4)

我想在此散点图的右上角放置一个图例,显示红点表示“无效”,绿点表示“有效”。由于我在一条线上绘制了两个彩色点,因此我不能(或不知道如何)给颜色单独的标签参数。那么,我该如何创造传奇呢?

标签: pythonmatplotlib

解决方案


这是一个简单的解决方案。

xs = np.array([tup[0] for tup in list(mydict.keys())])
ys = np.array([tup[1] for tup in list(mydict.keys())])
outcomes = np.array([outcome for outcome in list(mydict.values())])
plt.figure()
plt.subplot(211)
plt.scatter(xs[outcomes==0], ys[outcomes==0], c = colors, alpha = 0.5, s = 4, label = 'Ineffective')
plt.scatter(xs[outcomes==1], ys[outcomes==1], c = colors, alpha = 0.5, s = 4, label = 'Effective')
plt.legend(loc='upper right')
plt.show()

推荐阅读