写在前面。
条形图一般用来展示不同分类下(x轴)某个数值型变量的取值(y轴)。注意,条形的高度,有时是变量的频数
,有时是变量的取值本身
,需要注意区分。
条形图
我没有按照书中的章节顺序,而是根据条形高度映射数据类型
、图形位置
和图形元素
进行了分类整合,使脉络更清晰,知识点更集中。
同时随着ggplot2包的更新,书中的一些用法也已经不适用了,因此会做一些更正。
所使用的一些示例数据需要安装加载包gcookbook,同时也需要加载ggplot2。
if(!require(gcookbook) ) install.packages("gcookbook")
library(gcookbook)
library(ggplot2)
另外,ggplot2绘图的常用基本语句需要知道:
ggplot(data = , aes(x= , y = ) ) + geom_xxxx() + ...
2. 图形位置
在ggplot
语句中,通过映射一个分类变量给aes
语句的fill
参数,根据不同的变量值给条形分配不同的填充颜色
,然后设定不同的位置排列
,分为簇状(并排排列)
和堆积
两种。
2.3 百分比堆积条形图
这部分还有必要讲一下百分比堆积条形图
,它实质就是堆积条形图
,不过我们需要进行一下数据预处理
。
使用plyr包中的ddply
函数和transform
函数以Date
为切割变量对weight
变量进行标准化
library(plyr)
ce <- ddply(cabbage_exp, "Date", transform,
percent_Weight = Weight/sum(Weight)*100)
ce
Cultivar Date Weight sd n se Cultivar_ percent_Weight
1 c39 d16 3.18 0.9566144 10 0.30250803 c39 58.45588
2 c52 d16 2.26 0.4452215 10 0.14079141 c52 41.54412
3 c39 d20 2.80 0.2788867 10 0.08819171 c39 47.37733
4 c52 d20 3.11 0.7908505 10 0.25008887 c52 52.62267
5 c39 d21 2.74 0.9834181 10 0.31098410 c39 65.08314
6 c52 d21 1.47 0.2110819 10 0.06674995 c52 34.91686
然后我们使用预处理后的数据进行绘图
ggplot(data = ce, aes(x= Date ,y = percent_Weight,
fill = Cultivar_ ) ) +
geom_bar( stat = "identity" )
[图片上传失败...(image-d6ceae-1694738866937)]
以上,就是条形位置相关知识。
网友评论