python绘图时如何添加图例_在Python3.2 Matplotlib中为绘图添加图例时出错

这是应该起作用的plt.plot([0, 1], [-3, -3], color='b', linestyle='-', linewidth=1, label="blue line")

plt.plot([0, 1], [-7, -7], color='k', linestyle=' ', linewidth=1, label="black dash")

plt.legend(loc='upper center', fancybox=True, shadow=True, ncol=5, fontsize=11)

plt.show()

所以基本上,给线条添加标签,而不是图例,legend需要通过名称识别对象,如果不标记它们,则无法识别(它还会自动更改图例中的线条以适应当前外观)。在

同时也要检查y轴的范围。它经常尝试自动调整它们的大小,对于水平线,它经常失败,并将它们放在图形的最边缘。他们在那里你却看不见他们!在

编辑1:

既然我能看出你被这个弄糊涂了。我做了几个阴谋。第一个是文本(通常是任何其他框)。第二个是由loc关键字决定的图例。第三种是由bbox_to_anchor决定位置的传说。请注意文本框与图例框不对应。主要原因是bbox_to_anchor锚定在图例的右上角,而文本锚定在框的左下角。在

还要注意loc关键字与bbox_to_anchor不依赖于图形缩放。为了摆脱这个坏习惯,你必须通过

^{pr2}$

此外,如果您的图例甚至不适合交互式绘图屏幕中的灰色绘图区域,则必须选择“配置子图”图标,并更改值,直到您可以再次找到图例为止。在

ptvvC.png

pSYI5.png

rluia.png

同样重要的是要认识到,通过向带有bbox_to_anchor的图例添加loc关键字没有任何区别。bbox_to_anchor将践踏您为图例提供的所有其他位置。在

现在我要说的是,如果您不愿意阅读本手册并深入了解matplotlib实现,那么您不应该真正地干预bbox_to_anchor选项,但是我建议您在所有情况下都避免{},除非您的图形过于拥挤而不得不将其放置在外部。(在这种情况下,是时候考虑图形设计了吗?)在

最后,这里是从上面绘制图形的代码。在import matplotlib.pyplot as plt

plt.plot((0,0), (1,1), label="legend")

legends = []

for i in range(0, 11):

legends.append(plt.legend([str(i)], loc=i))

for legend in legends:

plt.gca().add_artist(legend)

#legends with loc=5 and 7 overlap

plt.show()

plt.plot((0,1), (0,1), label="legend")

legend1 = plt.legend(["0,0"], bbox_to_anchor=(0, 0))

legend3 = plt.legend(["1,1"], bbox_to_anchor=(1, 1))

legend2 = plt.legend(["0.5,0.5"], bbox_to_anchor=(0.5, 0.5))

legend4 = plt.legend(["0.5,0"], bbox_to_anchor=(0.5, 0))

legend6 = plt.legend(["0,0.5"], bbox_to_anchor=(0, 0.5))

legend5 = plt.legend(["1,0.5"], bbox_to_anchor=(1, 0.5))

legend7 = plt.legend(["0.5,1"], bbox_to_anchor=(0.5, 1))

legend8 = plt.legend(["1,0"], bbox_to_anchor=(1, 0))

legend9 = plt.legend(["0,1"], bbox_to_anchor=(0, 1))

plt.gca().add_artist(legend1)

plt.gca().add_artist(legend2)

plt.gca().add_artist(legend3)

plt.gca().add_artist(legend4)

plt.gca().add_artist(legend5)

plt.gca().add_artist(legend6)

plt.gca().add_artist(legend7)

plt.gca().add_artist(legend8)

plt.gca().add_artist(legend9)

plt.show()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值