我想在散点图上加一条线性直线和置信区间,请你帮我写一串代码
时间: 2024-10-13 14:18:15 浏览: 23
要在Python的Matplotlib库中创建散点图并添加线性回归直线以及置信区间,你可以使用`matplotlib`, `numpy`, 和 `statsmodels` 这些库。这里是一个简单的例子:
```python
import matplotlib.pyplot as plt
import numpy as np
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
# 假设你有如下数据
x = np.random.rand(100)
y = 2 + 3 * x + np.random.randn(100) # 线性模型加上一些随机噪声
# 创建散点图
plt.figure()
plt.scatter(x, y)
# 计算线性回归模型
model = ols('y ~ x', data={'x': x, 'y': y}).fit()
# 添加线性回归直线
slope, intercept = model.params['x'], model.params['Intercept']
line_x = np.linspace(min(x), max(x))
line_y = slope * line_x + intercept
plt.plot(line_x, line_y, color='red')
# 计算95%置信区间
conf_int = model.conf_int() # 返回的是下界和上界的数组
lower_line, upper_line = line_y - conf_int[0, 0], line_y + conf_int[1, 0]
plt.fill_between(line_x, lower_line, upper_line, alpha=0.2, color='blue') # 颜色透明度alpha=0.2
# 显示图形
plt.title('Scatter plot with regression line and confidence interval')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()
阅读全文