心灵鸡汤:吾日三省吾身,上午学到了什么?中午学到了什么?晚上学到了什么?加油吧!少年!
本次解答上一篇文章的画图:
ggplot(data = mpg,mapping=aes(x=displ,y=hwy))+geom_point()+geom_smooth(se=FALSE)
ggplot(data = mpg,mapping=aes(x=displ,y=hwy,group=drv))+geom_point()+geom_smooth(se=FALSE)
ggplot(data = mpg,mapping=aes(x=displ,y=hwy,color=drv))+geom_point()+geom_smooth(se=FALSE)
ggplot(data = mpg,mapping=aes(x=displ,y=hwy))+geom_point(aes(x=displ,y=hwy,color=drv))+geom_smooth(se = FALSE)
ggplot(data = mpg)+geom_point(aes(x=displ,y=hwy,color=drv))+geom_smooth(aes(x=displ,y=hwy,linetype=drv),se = FALSE)
ggplot(data = mpg)+geom_point(aes(x=displ,y=hwy,color=drv))
接下来我们看一下条形图。条形图虽然简单,但很有意思,因为它可以揭示出图形的一些微妙信息。
用geom_bar()
函数就可以绘制基本的条形图。我们采用ggplot2的内置数据集diamonds来画图,包含大约54000颗钻石的信息,每颗钻石具有price、carat、color、clarity和cut变量。
ggplot(data = diamonds)+geom_bar(mapping = aes(x=cut))
image.png
条形图显示高质量切割钻石的数量要比低质量切割钻石的数量多
统计变换
条形图x轴显示的是cut,这是diamonds数据集中的一个变量,但y轴的count并不是diamonds中的变量!那么count从哪来的呢?这需要涉及到一种计算新数据的算法称为stat(统计变换)。
统计变换分为三步:
-
geom_bar()
从diamonds数据集中开始处理。 -
geom_bar()
使用“数量”统计变换对数据进行转换,返回切割值和计数的数据集。 -
geom_bar()
使用变换后的数据进行绘图,cut映射到x轴,count映射到y轴。
几何对象函数
通常来说,几何对象函数和统计变换函数可以互换使用。例如,你可以使用stat_count()
替换为geom_bar()
来重新生成前面那张图:
ggplot(data = diamonds)+stat_count(mapping = aes(x = cut))
image.png
可以这么做的原因是,每个几何对象都有一个默认的统计变换,每个统计变换函数都有一个默认的几何对象,而
geom_bar()
使用stat_count()
函数进行统计变换。
修改默认的统计变换
比如我们将geom_bar()函数的统计变换从计数(默认值)修改为标识。
下面介绍赋值 <-
和数据框tibble()
将三个对象的数据框数据赋值给deom
deom <- tribble(
~a, ~b,
+ "bar_1", 20,
+ "bar_2", 30,
+ "bar_3", 40
+ )
这里吐槽一句,《R数据科学》在印刷的时候将tribble印成了tibble,我不会买了盗版吧QAQ。tribble是transposed tibble(转置tibble)的缩写,顾名思义,它可以以易读的方式对少量数据转置和布局。
接着我们把统计变换改为标识:
ggplot(data = deom)+geom_bar(mapping = aes(x=a,y=b),stat = "identity")
image.png
把计数类型改为比例类型的条形图
ggplot(data = diamonds)+geom_bar(mapping=aes(x=cut,y=..prop..,group=1))
image.png
使用stat_summary()函数做摘要统计
ggplot(data = diamonds)+stat_summary(mapping = aes(x=cut,y=depth),fun.ymin=min,fun.ymax=max,fun.y=median)
image.png
这里我们摘要的是中位数,ggplot2提供了20多个统计变换。我们可以按照通用的方式进行帮助查询,比如
?stat_bin
。当然你也可以用ggplot2速查表查看全部的统计变换。image.png
image.png
图片来源:https://wenku.baidu.com/view/82b87153da38376bae1fae7d.html#
网友评论