【数据可视化实验-3】数据关系型图表之散点图

实验内容:
绘制趋势显示的二维散点图,观察两个变量间的关系和相关性。
实验要求:
自选数值型数据集,分别绘制带趋势曲线的二维散点图和残差分析图。
实验目的:
掌握散点图的绘制方法,理解参数回归模型和非参数回归模型。
import pandas as pd
import numpy as np
from plotnine import *
import statsmodels.api as sm
df=pd.read_csv('Residual_Analysis_Data.csv')
#-----------------------------------(a) 线性回归---------------------
results = sm.OLS(df.y2, df.x).fit()
df['predicted']=results.predict() # 保存预测值
df['residuals']=df.predicted-df.y2 #保存残差(有正有负)
df['Abs_Residuals']=np.abs(df.residuals) #保存残差的绝对值
#mydata包含x、y2、predicted、residuals、Abs_Residuals 共5列数值
base_Residuals=(ggplot(df, aes(x = 'x', y = 'y2')) +
geom_point(aes(fill ='Abs_Residuals', size =
'Abs_Residuals'),shape='o',colour="black") +
# 使用实际值绘制气泡图,并将气泡的颜色和面积映射到残差的绝对值Abs_Residuals
geom_line(aes(y = 'predicted'), color = "lightgrey") + #添加空心圆圈的预测值
geom_point(aes(y = 'predicted'), shape = 'o') + #添加空心圆圈的预测值
geom_segment(aes(xend = 'x', yend = 'predicted'), alpha = .2) +#添加实际值和预测值的连接线...
scale_fill_gradientn(colors = ["blue", "yellow"]) + #填充颜色映射到red单色渐变系
guides(fill = guide_legend(title="Rresidual"),
size = guide_legend(title="Rresidual"))+
theme(
axis_title=element_text(size=20,face="plain",color="green"),
axis_text =
element_text(size=18,face="plain",color="green"),
#legend_position="none",
aspect_ratio =1.1,
figure_size = (5, 5),
dpi = 100)
)
print(base_Residuals)

#---------------------------------------(b)二次回归------------------
X = np.column_stack((df.x, df.x**2))
#使用 sm.add_constant() 在 array 上加入一列常项 1。
X = sm.add_constant(X)
results = sm.OLS(df.y5, X).fit()
df['predicted']=results.predict() # 保存预测值
df['residuals']=df.predicted-df.y5 #保存残差(有正有负)
df['Abs_Residuals']=np.abs(df.residuals) #保存残差的绝对值
#mydata包含x、y2、predicted、residuals、Abs_Residuals 共5列数值
base_Residuals=(ggplot(df, aes(x = 'x', y = 'y5')) +
geom_point(aes(fill ='Abs_Residuals', size =
'Abs_Residuals'),shape='o',colour="black") +
# 使用实际值绘制气泡图,并将气泡的颜色和面积映射到残差的绝对值Abs_Residuals
#geom_smooth(method = "lm", se = False, color = "lightgrey") + #添加灰色的线性拟合曲线
geom_line(aes(y = 'predicted'), color = "lightgrey") + #添加空心圆圈的预测值
geom_point(aes(y = 'predicted'), shape = 'o') + #添加空心圆圈的预测值
geom_segment(aes(xend = 'x', yend = 'predicted'), alpha = .2) +#添加实际值和预测值的连接线...
scale_fill_gradientn(colors = ["blue", "yellow"]) + #填充颜色映射到red单色渐变系
guides(fill = guide_legend(title="Rresidual"),
size = guide_legend(title="Rresidual"))+
theme(
axis_title=element_text(size=18,face="plain",color="green"),
axis_text =
element_text(size=16,face="plain",color="green"),
#legend_position="none",
aspect_ratio =1.1,
figure_size = (5, 5),
dpi = 100)
)
print(base_Residuals)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值