ggplot2入门大全(从菜鸟到高手) |
您所在的位置:网站首页 › 菜鸟到高手的中间如何表达出来 › ggplot2入门大全(从菜鸟到高手) |
在开始ggplot2的学习之前,可以先看下我之前的一篇博客,关于快速作图——qplot 在本章你将学习 1、ggplot2中的mpg数据集2、ggplot2图像的三个基本构成:数据、图形属性和几何对象3、如何将变量映射到图形属性中4、如何指定不同的几何对象绘制各种各样的图形No1、在图中添加平滑曲线No2、箱线图和扰动点图No3、直方图和频数多边形No4、条形图No5、时间序列中的折线图和路径图 5、如何修改坐标轴6、图像文件的其他处理方式,如保存至硬盘写这么多不容易,如果对你有帮助,点个关注吧 1、ggplot2中的mpg数据集第一步当然是加载ggplot2,读取数据,了解数据。 > library(ggplot2) Warning message: 程辑包‘ggplot2’是用R版本3.6.3 来建造的 > mpg # A tibble: 234 x 11 manufacturer model displ year cyl trans drv cty hwy fl class 1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact 2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact 3 audi a4 2 2008 4 manual(m6) f 20 31 p compact 4 audi a4 2 2008 4 auto(av) f 21 30 p compact 5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact 6 audi a4 2.8 1999 6 manual(m5) f 18 26 p compact 7 audi a4 3.1 2008 6 auto(av) f 18 27 p compact 8 audi a4 quattro 1.8 1999 4 manual(m5) 4 18 26 p compact 9 audi a4 quattro 1.8 1999 4 auto(l5) 4 16 25 p compact 10 audi a4 quattro 2 2008 4 manual(m6) 4 20 28 p compact # ... with 224 more rows > str(mpg) Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 234 obs. of 11 variables: $ manufacturer: chr "audi" "audi" "audi" "audi" ... $ model : chr "a4" "a4" "a4" "a4" ... $ displ : num 1.8 1.8 2 2 2.8 2.8 3.1 1.8 1.8 2 ... $ year : int 1999 1999 2008 2008 1999 1999 2008 1999 1999 2008 ... $ cyl : int 4 4 4 4 6 6 6 4 4 4 ... $ trans : chr "auto(l5)" "manual(m5)" "manual(m6)" "auto(av)" ... $ drv : chr "f" "f" "f" "f" ... $ cty : int 18 21 20 21 16 18 18 18 16 20 ... $ hwy : int 29 29 31 30 26 26 27 26 25 28 ... $ fl : chr "p" "p" "p" "p" ... $ class : chr "compact" "compact" "compact" "compact" ...cty 和 hwy 分别记录城市和高速公路驾驶耗油量(英里/加仑) 1 mile=1609.344 m;1 gal=3.785412L displ 表示发动机排量(L) drv 表示驱动系统:前轮驱动(f)、后轮驱动(r)和四轮驱动(4) model 表示车辆型号,共有38种车型 class 表示车辆类别 全部变量的解释可以参考:mpg数据集内容 2、ggplot2图像的三个基本构成:数据、图形属性和几何对象ggplot2 图像的三个基本构成: 1、数据 2、图形属性映射 3、几何对象 for example ggplot(mpg,aes(x=displ,y=hwy))+geom_point()
1、数据:mpg 2、图形属性映射:displ对应x轴,hwy对应y轴 3、几何对象:散点图 代码就像套公式,ggplot(mpg,aes(x=displ,y=hwy))+geom_point(),数据和图形属性映射包含在ggplot()中,而+可用来添加图层,随着学习的深入,+的东西会越来越丰富。 3、如何将变量映射到图形属性中先补充一点,下面两行代码是一样的,默认先x后y。 ggplot(mpg,aes(x=displ,y=hwy))+geom_point() ggplot(mpg,aes(displ,hwy))+geom_point()然而这样做出来的图并不是我们想要的,因为不够美观。还需要进一步调整,比如: #ggplot2通过 标度 可以将数据转换为图形属性。 ggplot(mpg,aes(displ,hwy,colour=class))+geom_point()#颜色 ggplot(mpg,aes(displ,hwy,shape=drv))+geom_point()#形状 ggplot(mpg,aes(displ,hwy,size=cyl))+geom_point()#大小以第一个colour为例,不同类型的车一目了然。
最后,来了解一下“分面”。这个不用解释,目的就是把复杂的数据分一分类,做出来的图更直观。分面有两种类型,网格型和封装型,下面主要讨论更为常用的封装型。 ggplot(mpg,aes(displ,hwy))+geom_point()+facet_wrap(~class)
聪明的你可能已经想到修改geom_point(),来画其他的图,恭喜你猜对了! 下面挑几个常用的图像类型展示一下: No1、在图中添加平滑曲线 ggplot(mpg,aes(displ,hwy))+geom_point()+geom_smooth()
示例: ggplot(mpg,aes(displ,hwy))+geom_point()+geom_smooth(method="loess",span=0.2) ggplot(mpg,aes(displ,hwy))+geom_point()+geom_smooth(method="loess",span=1)
我们常用的还有线性拟合,method=“lm”,这个就不存在平滑的问题了。method=“rlm”,也可进行线性拟合,对异常值不敏感,不过需要加载R包MASS,这里就不再做了。 No2、箱线图和扰动点图 ggplot(mpg,aes(drv,hwy))+geom_point()
每种方法都有优势和不足,根据自己的数据特点选择合适的方法最重要。 No3、直方图和频数多边形 ggplot(mpg,aes(hwy))+geom_histogram(binwidth = 1) ggplot(mpg,aes(hwy))+geom_freqpoly(binwidth = 1) #binwidth为组距,如果不需要均匀组距可以修改 breaks 参数 #不调整组距的话会被默认分为30组
离散变量情形下,条形图和直方图类似: ggplot(mpg,aes(manufacturer))+geom_bar()
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |