matplotlib改变图例的位置
时间: 2023-10-14 10:18:47 浏览: 57
你可以使用`legend()`函数中的`loc`参数来更改图例的位置。`loc`参数可以接受不同的值,例如:
- `'best'`:自动选择最佳位置。
- `'upper left'`、`'upper right'`、`'lower left'`、`'lower right'`:将图例放置在左上角、右上角、左下角或右下角。
- `'center'`、`'center left'`、`'center right'`、`'lower center'`、`'upper center'`:将图例放置在中心、左侧中心、右侧中心、下部中心或上部中心。
例如,要将图例放置在右下角,可以这样做:
```python
import matplotlib.pyplot as plt
# 绘制图形
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y)
# 设置图例位置
plt.legend(['Data'], loc='lower right')
plt.show()
```
这将在图形的右下角添加一个标签为`Data`的图例。
相关问题
matplotlib 图例位置
matplotlib的图例位置可以通过设置`loc`参数或`bbox_to_anchor`参数来实现自由调整。`loc`参数内置了一些位置选项,如`loc=1`表示将图例放置在右上角的位置。而`bbox_to_anchor`参数可以控制任意位置,其使用坐标表示,原点是图的左下角。可以通过调整坐标的数值来改变图例的位置,如`(1, 0)`表示右下角,`(0, 1)`表示左上角,`(0.5, 0.5)`表示中间位置。需要注意的是,这些坐标的数值可以是负数。此外,还可以通过设置`prop`参数来调整图例的大小,使用`legend(prop = {'size':8})`可以改变图例的大小。另外,通过设置`ncol`参数可以改变图例的样式,`legend(ncol=2)`表示将图例默认并排展示而不是并列展示。
matplotlib在图例位置显示R²
可以通过在图例中添加文本来显示R²值。以下是一个示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
x = np.arange(0, 10, 0.1)
y = 2 * x + 1 + np.random.randn(len(x))
# 计算R²
slope, intercept = np.polyfit(x, y, 1)
r_squared = np.round(1 - np.sum((y - (slope * x + intercept))**2) / ((len(y) - 1) * np.var(y)), decimals=2)
# 绘图
fig, ax = plt.subplots()
ax.plot(x, y, 'o', label='Data')
ax.plot(x, slope * x + intercept, label=f'Fit, R² = {r_squared}')
ax.legend(loc='best')
# 添加文本
ax.text(0.05, 0.95, f'R² = {r_squared}', transform=ax.transAxes, fontsize=14, verticalalignment='top')
```
在这个例子中,我们使用`np.polyfit()`函数计算线性拟合的斜率和截距,然后使用这些值来计算R²。我们将带有拟合线和R²值的标签添加到图例中,并使用`ax.text()`函数在图像的左上角添加相同的文本。请注意,我们需要使用`ax.transAxes`来指定文本的坐标系,以便它可以在图像的任何地方移动,而不会随着图像的缩放而改变它的位置。