重要细节:条形图的高度表示的是数据集中变量的频数,还是表示变量取值本身
1.离散型单变量的条形图
数据形式:已经汇总好的数据集和明细数据集
# 使用汇总好的数据集绘制条形图
library(ggplot2)
x <- c("A","B","C","D","E")
y <- c(13,22,16,31,8)
df <- data.frame(x = x,y = y)
ggplot(data = df,mapping = aes(x = x,y = y))+geom_bar(stat = "identity")
# y轴绘制的是变量的本身取值,因此不需要再做变换{stat = "identity"}
# 而该参数的默认值是count
# 使用明细数据集绘制条形图
set.seed(12)
x <- sample(c("A","B","C","D"),size = 1000,replace = TRUE,prob = c(0.2,0.3,0.3,0.2))
y <- rnorm(1000)*1000
df <- data.frame(x = x,y = y)
ggplot(data = df,mapping = aes(x=x,y = ..count..))+geom_bar(stat = "count")
# 统计某个离散型变量出现的频次时,geom_bar()函数中stat(统计转换)参数用默认值,即"count"
如果需要对明细数据中的某个离散变量进行聚合(均值、求和、最大、最小、方差等)后再绘制条形图,可以用dplyr包中的group_by()和summarize()函数实现。
2.从x轴的数据类型来看:有字符型的x值,也有数值型的x值
上面的两幅图对应的x轴均为离散的字符型值,如果X值是数值型时:
set.seed(12)
x <- sample(c(1,2,4,6,7),size = 1000,replace = TRUE,prob = c(0.1,0.2,0.3,0.2,0.2))
ggplot(data = data.frame(x=x),aes(x = x,y = ..count..))+geom_bar(stat = "count")
# 此时直接用数值型变量作为条形图的x轴,我们会发现条形图之间产生空缺,这样的图并不美观。
# 将数值型的x转换为因子{
factor(x)}
ggplot(data = data.frame(x = x),aes(x = factor(x),y = ..count..))+geom_bar()
# 设定条形的边框色和填充色
ggplot(data = data.frame(x = x),aes(x = factor(x),y = ..count..))+geom_bar(color = "black",fill = "blue")
输入colours(),可查看657中颜色的字符
输入colours()[grep(‘red’, colours())] 可查看与红色有关的字符
3.绘制并列条形图
以上条形图是基于一个离散型变量作为x轴,如果绘制多个离散型变量的条形图,