散点图基础2

散点图基础2

1. 拟合lm、loess、分组

library(ggplot2)
library(gcookbook)
sp<-ggplot(heightweight,aes(x=ageYear,y=heightIn))

#线性拟合lm
sp+geom_point()+stat_smooth(method=lm)  #默认95置信区间
sp+geom_point()+stat_smooth(method=lm,level = 0.99)#level设置置信区间
sp+geom_point()+stat_smooth(method=lm,se=FALSE)#se=false,不会添加置信区间
sp+geom_point()+stat_smooth(method=lm,se=FALSE,colour="red",linetype="dashed",size=2)#colour修改拟合线的颜色,线形(linetype),粗细

#多项式拟合loess
sp+geom_point()+stat_smooth(method=loess)

#logis回归 :不懂 见p77

#分组
sp<-ggplot(heightweight,aes(x=ageYear,y=heightIn,colour=sex))+
  geom_point()+
  scale_color_brewer(palette = "Set1")
sp+stat_smooth()

sp+stat_smooth(method = lm,fullrange = TRUE)#fullrange可以将拟合线绘制到右边界。loess不可以

在这里插入图片描述
线型

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2. 创建新的拟合函数

#lm建一个函数,predict()计算预测值
library(gcookbook)
model<-lm(heightIn~ageYear+I(ageYear^2),heightweight)
model

xmin<-min(heightweight$ageYear)
xmax<-max(heightweight$ageYear)
a<-data.frame(ageYear=seq(xmin,xmax,length.out = 20))
a
a$heightIn<-predict(model,a)
a

sp<-ggplot(heightweight,aes(x=ageYear,y=heightIn))+geom_point(colour="grey40")
sp+geom_line(data=a,size=1)

summary(model)#查看参数值
#annotate()手动添加标签
sp+annotate("text",label="r^2=0.42",x=16,y=55)

在这里插入图片描述
##3. 添加标签

#添加标签:手动annotate(),自动geom_text()
library(gcookbook)
cdata<-subset(countries,Year==2009&healthexp>2000)
cdata
sp<-ggplot(cdata,aes(x=healthexp,y=infmortality))+geom_point()
sp+annotate("text",label="Canada",x=4350,y=5.4)+annotate("text",label="USA",x=7400,y=6.8)

#把因子型或字符串型赋值给label,默认将标签中心置于xy坐标位置,默认size=5
sp+geom_text(aes(label=Name),size=4)

#对标签上下左右调整,vjust=0,文本基线会与数据点对齐,vjust=1,文本顶部与数据点对齐。hjust=0,左对齐,hjust=1,右对齐。或者对x,y增加或者减小。

sp+geom_text(aes(label=Name),size=4,hjust=0,vjust=1)
sp+geom_text(aes(x=healthexp+100,y=infmortality+0.2,label=Name),size=4)

#给几个点自动添加标签:增加一列只包含这几个点的新的标签列 .%in%判断前面一个向量内的元素是否在后面一个向量中,返回布尔值。
cdata$name1<-cdata$Name
abx<-cdata$name1 %in% c("Canada","Ireland","Japan")
abx
cdata$name1[!abx]<-NA
cdata
sp<-ggplot(cdata,aes(x=healthexp,y=infmortality))+geom_point()+
  geom_text(aes(x=healthexp+100,y=infmortality+0.2,label=name1),size=4)+xlim(2000,10000)
sp

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
##4.气泡图,scale_size_area

#绘制气泡图
#size=GDP,GDP赋值给半径
p<-ggplot(cdata,aes(x=healthexp,y=infmortality,size=GDP))+geom_point(shape=21,colour="black",fill="cornsilk")
p
#GDP赋值给点的面积
p+scale_size_area(max_size = 15)

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值