驾驭 geom_bar
geom_col() 需要您传入一个映射到 y 轴的列,而 geom_bar() 则不接收 y 轴映射(至少在默认情况下如此)。
相反,geom_bar() 会根据您提供的 x 轴映射,对每个类别统计每条观测(或传入数据框的每一行)的数量,然后绘制相应高度的柱子。
下面这两段代码会生成相同的图:
# geom_col()
data %>%
groupby(xAxisCol) %>%
summarize(value = n()) %>%
ggplot(aes(x = xAxisCol, y = value) +
geom_col()
# geom_bar()
data %>%
ggplot(aes(x = xAxisCol)) +
geom_bar()
让我们使用 geom_bar(),基于 WHO 数据按地区查看病例数较大的观测。
本练习是课程的一部分
R 中的可视化最佳实践
练习说明
- 使用
filter()将who_disease过滤为仅包含病例数大于1000的观测(行)。 - 将 x 轴映射到
region列。 - 在图形对象上添加
geom_bar()来绘制柱形。
交互式实操练习
通过完成这段示例代码来试试这个练习。
who_disease %>%
# filter data to observations of greater than 1,000 cases
___ %>%
# map the x-axis to the region column
ggplot() +
# add a geom_bar call
___