ggplot2绘图时可以添加回归线与回归方程公式怎么套的吗

R语言之ggplot2画图篇
quick plot
数据集:diamonds
(1)基本用法
library(ggplot2)
length(diamonds)
set.seed(1410)#设定种子数
dsmall&-diamonds[sample(nrow(diamonds),100),]#随机产生样本数
qplot(carat,price,data=diamonds)#画散点图
qplot(log(carat),log(price),data=diamonds)
color、size、shape
qplot(carat,price,data=dsmall,colour=color)
qplot(carat,price,data=dsmall,shape=cut)
&span style="font-family: Arial, Helvetica, sans-"&qplot(carat,price,data=dsmall,alpha=I(1/20))&/span&设置透明度
取值可以为:point、smooth、boxplot、path、line
对于连续型变量:geom可取histogram、freqpoly、density
对于离散型变量:bar
qplot(carat,price,data=dsmall,geom=c("point","smooth"))
qplot(carat,price,data=dsmall,geom=c("point","smooth"),span=0.2)
qplot(carat,price,data=dsmall,geom=c("point","smooth"),span=1)
数据(Data)和映射(Mapping)
将数据中的变量映射到图形属性,映射控制了二者之间的关系
标度(Scale)
标度负责控制映射后图形属性的显示方式,具体形式上看是图例和坐标刻度
几何对象(Geometric)
几何对象代表我们在图中实际看到的图形元素,如点、线、多边形等
统计变换(Statistics)
对原始数据进行某种计算,如对二元菜点图加上一条回归线
坐标系统(Coordinate)
坐标系统控制坐标轴并影响所有图形元素,坐标轴可以进行变换以满足不同的需要
图层(Layer)
数据、映射、几何对象、统计变换等构成一个图层,图层可以允许用户一步步的构建图形,方便单独对图层进行修改
分面(Facet)
条件绘图,将数据按某种方式分组,然后分别绘图。分布就是控制分组绘图的方式和排列形式
(1)geom_point
p&-ggplot(data=mpg,mapping=aes(x=cty,y=hwy))
p+geom_point()
summary(p)
summary(p+geom_point())
#将年份映射到颜色属性
p&-ggplot(mpg,aes(x=cty,y=hwy,colour=factor(year)))
p+geom_point()
(2)增加平滑线
p+geom_point()+stat_smooth()
p&-ggplot(mpg,aes(x=ctymy=hwy))
p+geom_point(aes(colour=factor(year)))+stat_smooth()
(3)两种等价的绘图方式
p&-ggplot(mpg,aes(x=cty,y=hwy))
p+geom_point(aes(colour=factor(year)))+stat_smooth()
d&-ggplot()+
geom_point(data=mpg,aes(x=cty,y=hwy,colour=factor(year)))+
stat_smooth(data=mpg,aes(x=cty,y=hwy))#此时除了底层画布外,有两个图层,分别定义了geom和stat
(4)用标度来修改颜色取值
p&-ggplot(mpg,aes(x=cty,y=hwy))
p+geom_point(aes(colour=factor(year)))+stat_smooth()+scale_color_manual(values=c("blue","red"))
(5)将排量映射到散点大小
p+geom_point(aes(colour=factor(year),size=displ))+
stat_smooth()+
scale_color_manual(values=c("blue2","red4"))
p+geom_point(aes(colour=factor(year),size=displ),alpha=0.5,position="jitter")+
stat_smooth()+
scale_color_manual(values=c("blue2","red4"))+
scale_size_continuous(range=c(4,10))
(6)用坐标控制图形显示的范围
p+geom_point(aes(colour=factor(year),size=displ),alpha=0.5,position="jitter")+
stat_smooth()+
scale_color_manual(values=c("blue2","red4"))+
scale_size_continuous(range=c(4,10))+
coord_cartesian(xlim=c(15,25),ylim=c(15,40))
(7)利用facet分别显示不同年份的数据
p+geom_point(aes(colour=class,size=displ),alpha=0.5,position="jitter")+
stat_smooth()+
scale_size_continuous(range=c(4,10))+
facet_wrap(~year,ncol=1)
(8)增加图名并精细修改图例
p&-ggplot(mpg,aes(x=cty,y=hwy))
p+geom_point(aes(colour=class,size=displ),alpha=0.5,position="jitter")+
stat_smooth()+
scale_size_continuous(range=c(4,10))+
facet_wrap(~year,ncol=1)+
opts(title='汽车油耗与型号')+
labs(x="每加仑高速公路行驶距离",y="每加仑城市公路行驶距离")+
guides(size=guide_legend(title="排量"),colour=guide_legend(titile="车型",override.aes=list(size=5)))
(9)直方图
p&-ggplot(mpg,aes(x=hwy))
p+geom_histogram()
直方图的几何对象中内置有默认的统计变换
p+geom_histogram(aes(fill=factor(year),y=..density..),alpha=0.3,colour="black")+
stat_density(geom="line",position="identity",size=1.5,aes(colour=factor(year)))+
facet_wrap(~year,ncol=1)
(10)条形图
p&-ggplot(mpg,aes(x=class))
p+geom_bar()
class2&-mpg$class
class2&-reorder(class2,class2,length)
mpg$class2&-class2
p&-ggplot(mpg,aes(x=class2))
p+geom_bar(aes(fill=class2))
p&-ggplot(mpg,aes(class2,fill=factor(year)))
p+geom_bar(position="identity",alpha=0.5)
p+geom_bar(position="dodge")
p+geom_bar(position="stack")
p+geom_bar(position="fill")
p+geom_bar(aes(fill=class2))+facet_wrap(~year)
(11)饼图
p&-ggplot(mpg,aes(x=factor(1),fill=factor(class)))+geom_bar(width=1)
p+coord_polar(theta="y")
(12)箱线图
p&-ggplot(mpg,aes(class,hwy,fill=class))
p+geom_boxplot()
p+geom_violin(alpha=0.3,width=0.9)+geom_jitter(shape=21)
3.观察密集散点的方法
增加扰动(jitter)
增加透明度(alpha)
二维直方图(stat_bin2d)
密度图(stat_density2d)
p&-ggplot(diamonds,aes(carat,price))
p+stat_bin2d(bins=60)
p+stat_density2d(aes(fill=..level..),geom="polygon")+
coord_cartesian(xlim=c(0,1.5),ylim=c(0,6000))+
scale_fill_continuous(high="red2",low="blue4")4.风向风速玫瑰图
#随机生成100次风向,并洪到16个敬意内
dir&-cut_interval(runif(100,0,360),n=16)
#随机生成100次风速,并划分成4种强度
mag&-cut_interval(rgamma(100,15),4)
sample&-data.frame(dir=dir,mag=mag)
#将风向映射到x轴,频数映射到y轴,风速大小映射到填充色,生成条形图后再转为极坐标形式即可
p&-ggplot(sample,aes(x=dir,y=..count..,fill=mag))
p+geom_bar()+coord_polar()
没有更多推荐了,(你以为的)
(桃花侠战菊花怪)
第三方登录:生物信息工程师
ggplot2-绘制散点图
本文更新地址:本文在&&的基础上加入了自己的理解数据set.seed(955)
dat &- data.frame(cond = rep(c(&A&, &B&), each=10),
xvar = 1:20 + rnorm(20,sd=3),
yvar = 1:20 + rnorm(20,sd=3))
head(dat)##
6..library(ggplot2)带有回归线的散点图
ggplot(dat, aes(x=xvar, y=yvar)) +
geom_point(shape=1)
ggplot(dat, aes(x=xvar, y=yvar)) +
geom_point(shape=1) +
geom_smooth(method=lm)
ggplot(dat, aes(x=xvar, y=yvar)) +
geom_point(shape=1) +
geom_smooth(method=lm,
ggplot(dat, aes(x=xvar, y=yvar)) +
geom_point(shape=1) +
geom_smooth()
## geom_smooth: method=&auto& and size of largest group is &1000, so using loess. Use 'method = x' to change the smoothing method.设置颜色
ggplot(dat, aes(x=xvar, y=yvar, color=cond)) + geom_point(shape=1)
ggplot(dat, aes(x=xvar, y=yvar, color=cond)) +
geom_point(shape=1) +
scale_colour_hue(l=50) +
geom_smooth(method=lm,
ggplot(dat, aes(x=xvar, y=yvar, color=cond)) + geom_point(shape=1) +
scale_colour_hue(l=50) +
geom_smooth(method=lm,
fullrange=TRUE)
ggplot(dat, aes(x=xvar, y=yvar, shape=cond)) + geom_point()ggplot(dat, aes(x=xvar, y=yvar, shape=cond)) + geom_point() +
scale_shape_manual(values=c(1,2))
重叠数据的处理
dat$xrnd &- round(dat$xvar/5)*5
dat$yrnd &- round(dat$yvar/5)*5
ggplot(dat, aes(x=xrnd, y=yrnd)) +
geom_point(shape=19,
alpha=1/4)
ggplot(dat, aes(x=xrnd, y=yrnd)) +
geom_point(shape=1,
position=position_jitter(width=1,height=.5))
没有更多推荐了,用户“伤旧”对问题“在图上添加回归直线方程和R2?”的回答 - 问答 - 云+社区 - 腾讯云云+社区首页我想知道如何将回归线方程和R^2添加到ggplot.我的代码是library(ggplot2)
df &- data.frame(x = c(1:100))
df$y &- 2 + 3 * df$x + rnorm(100, sd = 40)
p &- ggplot(data = df, aes(x = x, y = y)) +
geom_smooth(method = &lm&, se=FALSE, color=&black&, formula = y ~ x) +
geom_point()
p任何帮助都将不胜感激。写回答邀请回答在图上添加回归直线方程和R2?写回答我已经修改了楼上帖子的文章,使其更通用,因此它接受一个线性模型作为参数,而不是数据框架;lm_eqn = function(m) {
l &- list(a = format(coef(m)[1], digits = 2),
b = format(abs(coef(m)[2]), digits = 2),
r2 = format(summary(m)$r.squared, digits = 3));
if (coef(m)[2] &= 0)
eq &- substitute(italic(y) == a + b %.% italic(x)*&,&~~italic(r)^2~&=&~r2,l)
eq &- substitute(italic(y) == a - b %.% italic(x)*&,&~~italic(r)^2~&=&~r2,l)
as.character(as.expression(eq));
}用法将改为:p1 = p + geom_text(aes(x = 25, y = 300, label = lm_eqn(lm(y ~ x, df))), parse = TRUE)回答过的其他问题区块链本质上是一个去中心化的分布式账本数据库。其本身是一串使用密码学相关联所产生的数据块,每一个数据块中包含了多次比特币网络交易有效确认的信息。 目前腾讯云支持的支付方式有:QQ钱包、微信支付、财付通(财付通余额、网银、快捷支付、银行卡支付);以上是在线支付方式,并且提供线下转账方式的。充值指引可参考文档:https://www.qcloud.com/document/product/555/7425... 你可以在数据库中使用分页系统,你应该在数据库中放置一个参数“page”,例如在第1页中存储10个数据条目,然后在第2页中存储下10个数据条目。因此,你可以使用以下方法从数据库中获取有限数量的数据使用“页面”。 以下是我的研究结果console.log(req.headers): { 'accept-language': 'en-US,q=0.9',
'accept-encoding': 'gzip, deflate, br',
referer: 'http://loca......
这是QT中的一个bug。 第10537期 引用链接问题的话: 问题是,在QDockWidget:ache tEvent中,在绘制PE之前有一个isFloating()条件_FrameDockWidget我们不能删除此条件,因为它会破坏另一种样式(当dockwidget停靠时不能...... 我不相信导航栏有一个集合对象,在这种情况下,这可能是你唯一的希望。我建议你使用多选列表框创建自己的表单,在表单加载时用Query对象填充它,然后编写代码以循环遍历列表框并导出所选项。暂无个人信息扫描二维码扫描关注云+社区R包——ggplot2(二)
时间: 21:07:30
&&&& 阅读:219
&&&& 评论:
&&&& 收藏:0
标签:关于ggplot包(二)
关于ggplot包(二)
标尺(Scale)
从前面可以看到,画图其实就是在做映射,不管是映射到不同的几何对象上,还是映射各种图形属性。在对图形属性进行映射之后,使用标尺可以控制这些属性的显示方式,如坐标刻度,如颜色属性。
& ggplot(small)+geom_point(aes(x=carat,y=price,shape=cut,colour=color))+scale_y_log10()+scale_colour_manual(values=rainbow(7))#将Y轴坐标进行log10变换,自己定义颜色为彩虹色
统计变换(Statistics)
统计变换对原始数据进行某种计算,然后在图上表示出来,如对散点图上加一条回归线
& ggplot(small,aes(x=carat,y=price))+geom_point()+scale_y_log10()+stat_smooth()
这里,aes所提供的参数,就通过ggplot提供,而不是提供给geom_point,因为ggplot里的参数,相当于全局变量,geom_point()和stat_smooth()都知道x,y的映射,如果只提供给geom_point(),则相当于是局部变量,geom_point知道这种映射,而stat_smooth不知道,当然你再给stat_smooth也提供x,y的映射,不过共用的映射,还是提供给ggplot好。
ggplot2提供了多种统计变换方式:
stat_abline
stat_contour
stat_identity
stat_summarystat_bin
stat_density
stat_summary2dstat_bin2d
stat_density2d
stat_quantile
stat_summary_hexstat_bindot
stat_smooth
stat_uniquestat_binhex
stat_function
stat_spoke
stat_vlinestat_boxplot
stat_hline
stat_ydensity
坐标系统(Coordinante)
坐标系统控制坐标轴,可以进行变换,如XY轴翻转,笛卡尔坐标和极坐标转换。
坐标轴翻转由coord_flip()实现
& ggplot(small)+geom_bar(aes(x=cut,fill=cut))+coord_flip()
而转换成极坐标可以由coord_polar()实现:
& ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar(theta="y")
还可以画靶心图
& ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar()
& ggplot(small)+geom_bar(aes(x=clarity, fill=cut))+coord_polar()
图层(Layer)
对于PS的图层概念,ggplot也能使用+号来叠加图层
分面(Facet)
分面可以让我们按照某种给定的条件,对数据进行分组,然后分别画图
& ggplot(small, aes(x=carat, y=price))+geom_point(aes(colour=cut))+scale_y_log10() +facet_wrap(~cut)+stat_smooth()
主题(Theme)
通过ggplot画图之后,我们可能还需要对图进行定制,像title, xlab, ylab这些高频需要用到的,自不用说,ggplot2提供了ggtitle(), xlab()和ylab()来实现。
但是这个远远满足不了需求,我们需要改变字体,字体大小,坐标轴,背景等各种元素,这需要通过theme()函数来完成。
ggplot2提供一些已经写好的主题,比如theme_grey()为默认主题,theme_bw()为白色背景的主题,还有theme_classic()主题,和R的基础画图函数较像。
别外ggthemes包提供了一些主题可供使用,包括:
theme_economist theme_economist_whitetheme_wsj
theme_exceltheme_few
theme_foundationtheme_igray
theme_solarizedtheme_stata
theme_tufte
& p&-ggplot(small)+geom_boxplot(aes(x=cut, y=price,fill=color))& & require(ggthemes)载入需要的程辑包:ggthemes&
+ theme_wsj()
详细说明,可以参考?theme的帮助文档
二维密度图
& ggplot(diamonds, aes(carat, price))+ stat_density2d(aes(fill = ..level..), geom="polygon")+ scale_fill_continuous(high=‘darkred‘,low=‘darkgreen‘)
标签:原文地址:http://www.cnblogs.com/XBlack/p/4969815.html
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!

我要回帖

更多关于 线性回归方程公式 的文章

 

随机推荐