matplotlib在图例位置显示R²
时间: 2024-05-08 09:15:26 浏览: 74
可以通过在图例中添加文本来显示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`来指定文本的坐标系,以便它可以在图像的任何地方移动,而不会随着图像的缩放而改变它的位置。
阅读全文