(完美解决)matplotlib图例(legend)如何自由设置其位置、大小以及样式。

前言

plt.legend()

我们知道,这一条代码会帮我们显示图例,而且通常,其会放置在图片中一个不错的位置。但是如果我们的数据,占满了整个图像,此时,其放的位置就会出问题了。
在这里插入图片描述

那么我们该如何自由设置图例位置呢?

位置:loc

这个参数内置了一些位置,如果这些位置恰好有你想要的,那么用这个就行了,很方便。

在这里插入图片描述

plt.legend(loc=1)#这个就等价于将图例放置在右上角的位置。

位置:bbox_to_anchor

这个是绝招,因为其可以控制任意位置。

plt.legend(bbox_to_anchor=(1,0))

这个玩意是一个坐标,原点就是图的左下角。但是,这个坐标的数值表示的是比例。比如

(1,0)#右下角
(0,1)#左上角
(0.5,0.5)#中间
(0.4,0.4)#中间往左下一点,哈哈。

所以说,很简单了,你自己慢慢调到你想要的位置就行了。注意,上面还支持负数哦。

在这里插入图片描述
最终,成功调节到了一个中间,偏左的位置哈哈。

吃水不忘挖井人,学习自https://www.freesion.com/article/239347665/

大小

我们只需要legend函数里面传入下面这个东西即可。

legend(prop = {'size':8})

据我所知,在matplotlib,这个prop变量几乎可以用在任何地方,不只是legend。

样式

我们看到的样式总是竖排的,每次都是,其实我们可以更改之,比如我们有两个图例,那么我们设置下面这个为2,就是默认并排展示,而不是并列展示。

legend(ncol=2)#默认为1,并列展示。

从而变成如下的图例。
在这里插入图片描述

### 如何在 Matplotlib设置 Legend 样式位置 Matplotlib 提供了灵活的方式来自定义图例位置大小及其样式。通过 `plt.legend()` 函数可以实现这些自定义需求。 #### 设置图例位置 为了指定图例的具体位置,`loc` 参数用于指示预设的最佳位置之一;而更为精确的位置控制可以通过 `bbox_to_anchor` 参数来完成。例如: ```python import matplotlib.pyplot as plt fig = plt.figure() plt.plot([0, 1], [0, 1]) plt.legend(['A simple line'], loc='upper right', bbox_to_anchor=(1.05, 1)) ``` 这段代码中的 `bbox_to_anchor` 使用了一个元组 `(1.05, 1)` 来微调图例外部边界框相对于图表区域的位置[^3]。 #### 控制图例边框 如果希望隐藏或显示图例周围的矩形边框,则可通过 `frameon` 参数来进行配置。当此参数被设定为 `False` 时,将会移除默认绘制的方框: ```python plt.legend(frameon=False) ``` 这使得图例看起来更加简洁,尤其适用于那些不需要额外视觉分隔符的情况[^4]。 #### 调整图例字体和其他属性 除了上述提到的内容外,还可以进一步调整图例文字的颜色、字号以及其他外观特性。下面是一个综合应用的例子: ```python from matplotlib.font_manager import FontProperties fontP = FontProperties() fontP.set_size('small') plt.legend(prop=fontP) # 或者直接传递字典给 prop 关键词参数 plt.legend(prop={'size': 'small'}) ``` 这里展示了两种不同的方法去改变图例内文本的尺寸——一种是先创建一个 `FontProperties` 对象再对其进行修改,另一种则是简单地传入包含所需样式的字典[^1]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值