要将图例添加到matplotlib图例中,只需运行legend()。

如何从一个情节中移除一个传说?

(我最接近这一点的是运行legend([]),以便从数据中清空传说。但这在右上角留下了一个丑陋的白色矩形。)


当前回答

如果你把pyplot称作PLT

frameon=False是删除图例周围的边框

“传递的信息是,图例中不应该有变量

import matplotlib.pyplot as plt
plt.legend('',frameon=False)

其他回答

我将图例添加到图形中,而不是添加到轴上(matplotlib 2.2.2)。为了移除它,我将图形的legends属性设置为一个空列表:

import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()

ax1.plot(range(10), range(10, 20), label='line 1')
ax2.plot(range(10), range(30, 20, -1), label='line 2')

fig.legend()

fig.legends = []

plt.show()

如果你把pyplot称作PLT

frameon=False是删除图例周围的边框

“传递的信息是,图例中不应该有变量

import matplotlib.pyplot as plt
plt.legend('',frameon=False)

你必须添加以下几行代码:

ax = gca()
ax.legend_ = None
draw()

Gca()返回当前坐标轴句柄,并具有传奇_属性

你可以使用图例的set_visible方法:

ax.legend().set_visible(False)
draw()

这是基于一段时间前我在这里遇到的类似问题的答案

(谢谢你的回答,Jouni -我很抱歉我不能把问题标记为回答…也许有权威的人可以为我做这件事?)

下面是一个使用matplotlib和seaborn处理子图的图例删除和操作的更复杂的例子:

从seaborn获取由sns.<some_plot>()创建的Axes对象,并执行@naitsirhc指示的ax.get_legend().remove()。下面的例子还展示了如何将图例放在一边,以及如何在子情节的上下文中处理。

# imports
import seaborn as sns
import matplotlib.pyplot as plt

# get data
sns.set()
sns.set_theme(style="darkgrid")
tips = sns.load_dataset("tips")

# subplots
fig, axes = plt.subplots(1, 2, sharex=True, sharey=True, figsize=(12,6)) 
fig.suptitle('Example of legend manipulations on subplots with seaborn')

g0 = sns.pointplot(ax=axes[0], data=tips, x="day", y="total_bill", hue="size")
g0.set(title="Pointplot with no legend")
g0.get_legend().remove() # <<< REMOVE LEGEND HERE 

g1 = sns.swarmplot(ax=axes[1], data=tips, x="day", y="total_bill", hue="size")
g1.set(title="Swarmplot with legend aside")
# change legend position: https://www.statology.org/seaborn-legend-position/
g1.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0)