首页 > 解决方案 > 图例句柄中的圆圈在 matplotlib 中不起作用

问题描述

我在 Ubuntu 18.04 上,我的 matplotlib 版本是2.1.1. 我正在尝试绘制一个圆形补丁作为图形图例句柄。此示例提供了一种使用自定义句柄的方法,如下所示:

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt

red_patch = mpatches.Patch(color='red', label='The red data')
plt.legend(handles=[red_patch])

plt.show()

但我想要一个圆形手柄而不是一个矩形补丁。所以我尝试了:

导入 matplotlib.pyplot 作为 plt 导入 matplotlib.patches 作为 mpatches

fig, ax = plt.subplots(1, 1)
circle = mpatches.Circle(xy = (0.5, 0.5), radius = 100,color = "green")

ax.plot([1, 2, 3], [1, 2, 3])

fig.legend(handles = [circle], labels = ["some funny label"])
plt.show()

但是,我仍然得到一个矩形补丁,并且在我看来,在错误的位置。我到底错过了什么?

在此处输入图像描述

编辑:我特意问我的代码有什么问题。有变通方法很有帮助,但我看不出上面的代码有什么问题。

标签: pythonmatplotliblegendlegend-properties

解决方案


文档中,他们这样做如下:

from matplotlib.lines import Line2D
import matplotlib.pyplot as plt

red_circle = Line2D([0], [0], marker='o', color='w', label='Circle',
                        markerfacecolor='r', markersize=15),
plt.legend(handles=red_circle)

在此处输入图像描述


推荐阅读