matplotlib图例中缺少标签

最大限度

我正在用matplotlib绘制子图,图例在某些图中没有显示。在此示例中,散点图图例不会显示。

import numpy as np
import matplotlib
from matplotlib import pyplot as plt
from matplotlib.legend_handler import HandlerLine2D
from matplotlib.patches import Rectangle, Circle

fig = plt.figure()
plt.cla()
plt.clf()

x = np.arange(5) + 1
y = np.full(5, 10)
fig, subplots = plt.subplots(2, sharex=False, sharey=False)
subplots[0].bar(x, y, color='r', alpha=0.5, label='a')
scat = subplots[0].scatter(x, y-1, color='g', label='c')
subplots[0].set_yscale('log')

subplots[1].bar(x, y, color='r', alpha=0.5, label='a')
x = [2, 3]
y = [4, 4]
subplots[1].bar(x, y, color='b', alpha=1, label='b')
subplots[1].set_yscale('log')

plt.legend(loc='center left', bbox_to_anchor=(1, 0.5), handler_map={scat: HandlerLine2D(numpoints=4)})

plt.show()

这是我尝试的解决方法:

p1 = Rectangle((0, 0), 1, 1, fc="r", alpha=0.5)
p2 = Rectangle((0, 0), 1, 1, fc="b")
p3 = Circle((0, 0), 1, fc="g")
legend([p1, p2, p3], ['a', 'b', 'c'], loc='center left', bbox_to_anchor=(1, 0.5))

我真的更喜欢在没有解决方法的情况下解决此问题,因此如果有人知道如何解决此问题,请告诉我。另外,解决方法的问题是,Circle对象在图例上仍显示为条形。

巴特

plt.legend以a开头gca()(返回当前轴):

# from pyplot.py:
def legend(*args, **kwargs):
   ret = gca().legend(*args, **kwargs)

因此,调用plt.legend只会在最后一个子图上为您提供图例。但是也可以致电例如ax.legend(),或者您的情况subplots[0].legend()将其添加到代码末尾可为我提供两个子图的图例。

样本:

for subplot in subplots:
    subplot.legend(loc='center left', bbox_to_anchor=(1, 0.5))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

matplotlib散点图图例中缺少标签

来自分类Dev

ggplot图例中缺少标签

来自分类Dev

如何清除图例中的matplotlib标签?

来自分类Dev

Matplotlib编辑图例标签

来自分类Dev

使用matplotlib中样本的标签为散点图创建图例

来自分类Dev

matplotlib中的重叠图例

来自分类Dev

matplotlib中的图例对齐

来自分类Dev

matplotlib中的表图例

来自分类Dev

Matplotlib图例中的字幕

来自分类Dev

matplotlib中的图例

来自分类Dev

在 matplotlib 中处理图例?

来自分类Dev

您可以在Altair图表的图例中添加“缺少数据”的标签吗?

来自分类Dev

Matplotlib填充缺少的Tic标签

来自分类Dev

matplotlib:将图例符号放在标签的右侧

来自分类Dev

Matplotlib图例:标记上方的标签

来自分类Dev

带有图例标签的单行上的 matplotlib 图例标题

来自分类Dev

ggplot boxplot中的标签图例

来自分类Dev

旋转图例或将补丁添加到matplotlib中的轴标签

来自分类Dev

禁止警告:matplotlib.legend:未找到带有放置在图例中的标签的手柄

来自分类Dev

旋转图例或将补丁添加到matplotlib中的轴标签

来自分类Dev

在matplotlib中对齐图例行

来自分类Dev

在matplotlib中获取图例的宽度

来自分类Dev

matplotlib中的阴影图例行

来自分类Dev

散点图:在图例中显示缺少的因子水平

来自分类Dev

总是在图例中的图例中显示标签

来自分类Dev

matplotlib中图例中的重复项?

来自分类Dev

matplotlib中图例中的多个标题

来自分类Dev

pyplot在图例中合并多个线标签

来自分类Dev

从ggplot图例中删除单个标签