R语言——ggplot2可视化
1 例子引入
1.ggplot2中,图是采用串联起来的( )号函数创建的,每个函数修改属于自己的部分。
library("ggplot2")
ggplot(data=mtcars,aes(x=wt,y=mpg))
geom_point()
labs(title="Automobile Data",x="weight",y="Miles Per Gallon")
library("ggplot2")
ggplot(data=mtcars,aes(x=wt,y=mpg))
geom_point(pch=17,color="blue",size=2)
geom_smooth(method='lm',color='red',linetype=2)
labs(title="Automobile Data",x="weight",y="Miles Per Gallon")
2.ggplot()函数 初始化图形指定数据源和变量。ggplot()设置图形但没有自己的视觉输出,需要几何函数来添加图形
3.aes()函数指定每个变量扮演的角色
4.geom_point()几何函数,创建散点图
5.geom_smooth()几何函数,创建拟合曲线
6labs()可选函数,用来添加注释。
ggplot2包提供了分组和小面化的方法
分组:在一个图形中显示两组或多组观察结果
小面化:在单独、并排的图形上来显示观察组
mtcars$am<-factor(mtcars$am,levels=c(0,1),labels=c("Automatic","Manual"))
mtcars$vs<-factor(mtcars$vs,levels=c(0,1),labels=c("V-Engine","Straight Engine"))
mtcars$cyl<-factor(mtcars$cyl)
ggplot(data=mtcars,aes(x=hp,y=mpg,shape=cyl,color=cyl))
geom_point(size=3)
facet_grid(am~vs)
labs(title="Automobile Data by Engine Type",x="Horsepower",y="Miles Per Gallon")
2 用几何函数指定图的类型
ggplot()函数指定要绘制的数据源和变量,集合函数则指定这些变量如何在视觉上进行表示(使用点、条、线和阴影区)
函数 | 添加 |
---|---|
geom_bar() | 条形图 |
geom_boxplot() | 箱线图 |
geom_density() | 密度图 |
geom_histogram() | 直方图 |
geom_hline() | 水平线 |
geom_jitter() | 抖动图 |
geom_line() | 线图 |
geom_point() | 散点图 |
geom_rug() | 地毯图 |
geom_smooth() | 拟合曲线 |
geom_text() | 文字注解 |
geom_violin() | 小提琴图 |
geom_vline() | 垂线 |
library(ggplot2)
data(singer,package="lattice")
ggplot(singer,aes(x=height)) geom_histogram()
#注意箱线图要指定出X,y才能达到此效果
ggplot(singer,aes(x=voice.part,y=height)) geom_boxplot()
几何函数还有很多选项可以调整,加以使用
library(ggplot2)
data(Salaries,package="carData")
ggplot(Salaries,aes(x=rank,y=salary))
geom_boxplot(fill="cornflowerblue",color="black",notch=TRUE)
geom_point(position="jitter",color="blue",alpha=.5)
geom_rug(sides="l",color="black")
#箱线图的填充色为cornflowerblue,边线颜色为"black",设置为有凹槽的箱线图
#散点图采取“jitter”,即抖动的形式,颜色为"blue",透明度50%
#地毯图放在左部,颜色为黑色
将小提琴图和箱线图结合成新的图形
data(singer,package="lattice")
ggplot(singer,aes(x=voice.part,y=height))
geom_violin(fill="lightblue")
geom_boxplot(fill="lightblue",width=.2)
3 分组
分组是通过ppgplot2图将一个或多个带有诸如颜色、形状、填充、尺寸和线类型的视觉特征的分组变量来完成的。
aes()函数负责分配变量(图形的视觉特征),所以这是一个分配分组变量的自然的地方。
以学术等级分组的大学薪水的密度图
library(car)
data(Salaries,package='car')
library(ggplot2)
ggplot(data=Salaries,aes(x=salary,fill=rank)) geom_density(alpha=.3)
#alpha是设置透明度
博士毕业年数和薪水的散点图
ggplot(Salaries,aes(x=yrs.since.phd,y=salary,color=rank,shape=sex)) geom_point()
分组条形图的三个版本
library(cowplot)
p1<-ggplot(Salaries,aes(x=rank,fill=sex))
geom_bar(position='stack') labs(title='position="stack"')
p2<-ggplot(Salaries,aes(x=rank,fill=sex))
geom_bar(position='dodge') labs(title='position="dodge"')
p3<-ggplot(Salaries,aes(x=rank,fill=sex))
geom_bar(position='fill') labs(title='position="fill"')
plot_grid(p1,p2,p3,ncol=3)
[]:
【可以发现,第三个图应该是比例,y轴的标签是错滴】
关于cowplot包plot_gird函数的拼接使用方法https://www.163.com/dy/article/GRQOPGJ30552BFPX.html
奇奇怪怪的实验
library(cowplot)
p1<-ggplot(Salaries,aes(x=rank,fill=sex))
geom_bar()
p2<-ggplot(Salaries,aes(x=rank))
geom_bar(fill='red')
p3<-ggplot(Salaries,aes(x=rank,fill='red'))
geom_bar()
plot_grid(p1,p2,p3,ncol=3)
图1 :sex通过条形图中填充颜色展示
图2:geom_bar(fill=‘red’)每个条形图都用红色填充
图3:aes(fill=‘red’)假定red是变量的名字
通常变量应该设置在aes()函数内,分配常熟应该在aes()函数外
4 刻面
刻面:也就是网格图形。用facet_wrap()函数和facet_grid()函数实现
这样,组在图中并排出现而不是重叠为单一的图形,关系是清晰的。
data(singer,package='lattice')
library(ggplot2)
ggplot(data=singer,aes(x=height)) geom_histogram() facet_wrap(~voice.part,nrow=4)
包含刻面和分组的图
ggplot(Salaries,aes(x=yrs.since.phd,y=salary,color=rank,shape=rank)) geom_point() facet_grid(.~sex)
data(singer,package='lattice')
library(ggplot2)
ggplot(singer,aes(x=height,fill=voice.part))
geom_density()
facet_grid(voice.part~.)
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggjjgj
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13