ggplot_Bar的总结
2020-12-15 本文已影响0人
ADO_AI
原本在本地写了Rmarkdown格式的笔记,想要上传到简书,但发现不支持;转战kaggle,将.Rmd文件上传后,呈现出来的效果跟本地的效果相去甚远。私以为,如果想要将自己的思考以及代码运行结果同时展示,还是直接在kaggle上面写在线笔记为佳,这是我在kaggle上写的笔记https://www.kaggle.com/xiujudu/ggplot-bar/edit。如果只是本地运行,并且生成html文件进行查看,倒也可。
这是关于ggplot中不同维度数据绘图的一个简单总结,以Bar这类图为主
library(tidyverse)
library(plyr)
data(mpg)
针对一维分类变量,其实geom_histogram和geom_bar也能够通用无外乎也是对一维变量进行计数(count),只不过图形的样子有所不同
ggplot(mpg,aes(x=cyl))+geom_bar()
ggplot(mpg,aes(x=cyl))+geom_histogram()
针对二维变量,有几种组合情况:
1.均是连续变量 2.一分类,一连续(通常x分类,y连续) 3.均是分类变量
- 接下来首先讨论情况1
- 均是连续变量的情况,我们往往用散点图进行刻画
ggplot(mpg,aes(x = displ,y=cty))+geom_point()
- 虽然设定stat ='identity',能够画出geom_bar图,但是画出来的图有些难以理解
ggplot(mpg,aes(x = displ,y=cty))+geom_bar(stat = 'identity')
- 当然,如果我将其中一个连续变量进行封箱处理,实际是利用区间将该连续变量分成了几类,那么呈现方式可参考情况2中boxplot的使用
- 情况2
- 其实这个时候我仍然可以用geom_point来进行刻画,只不过这种图难以刻画出连续变量y的分布信息,那么自然地就转为geom_boxplot
ggplot(mpg,aes(x = manufacturer,y=cty))+geom_point()
- geom_boxplot就专为在不同x分类情况下连续变量y的四分位数分布而生
ggplot(mpg,aes(x = manufacturer,y=cty))+geom_boxplot()
- 小提琴图本质上是一种boxplot,它适用的数据情况和图形所反应的,内容跟boxplot是一样的;区别在于它还能够提供连续变量y的核密度估计
ggplot(mpg,aes(x = manufacturer,y=cty))+geom_violin()
- 两者都是连续变量,对其中一个连续变量进行封箱处理后用boxplot呈现
qplot(displ,cty,data = mpg,geom='boxplot',group = round_any(displ,0.5,floor))
- 情况3:这种情况下,往往都是只刻画一维分类变量,另外一个分类变量作为其他图形属性(如颜色、形状,以及条形图的特定属性fill)
ggplot(mpg,aes(x=manufacturer))+geom_bar(aes(fill=drv))
- 默认的位置参数position = stack,可以调整为fill,dodge
ggplot(mpg,aes(x=manufacturer))+geom_bar(aes(fill=drv),position = 'fill')
ggplot(mpg,aes(x=manufacturer))+geom_bar(aes(fill=drv),position = 'dodge')