matplotlib——图例legend相关设置

图例 legend()

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
什么是图例?

图例是集中于图的一角或者一侧的各种符号和颜色代表内容的说明,有助于更好地理解图

设置方法
①直接在plot中设置label属性值 最后调用legend() 方法即可

x = np.linspace(-5, 5)
y = np.random.randint(10, 40, len(x))
z = np.random.randint(20, 30, len(x))

plt.plot(x, y, label='one', color='blue')
plt.plot(x, z, label='two', color='red')
plt.legend()

在这里插入图片描述

但是图例的位置不好,我们需要自己设置位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PNfwREy5-1648530372730)(attachment:image-2.png)]

在 legend() 方法中设置loc属性的值用于改变图例的位置

plt.plot(x, y, label='sinx', color='blue')
plt.plot(x, z, label='cosx', color='red')
plt.legend(loc='upper right')

在这里插入图片描述

显示每个点的坐标在图像中

首先介绍一下 zip() 方法 该方法可以将传入的n个元素数量相等的列表压缩成一个元组,元组的每个元素就是一个n元组

a = np.random.randint(10 ,30, 5)
b = np.random.randint(10 ,30, 5)
ab = zip(a, b)
for m,n in ab:
    print(m, '  ', n)
24    11
16    10
17    13
13    17
19    15

用该方法就可实现需求

p = [-3, -2, -1, 0, 1, 2, 3]
q =list(np.random.randint(10, 30, len(p)))
pq = zip(p, q)
for m,n in pq:
    plt.text(m, n, f'({m},{n})')
plt.plot(p, q, label='sinx', color='blue')
plt.legend(loc='upper right')

在这里插入图片描述


### 如何在 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]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值