R 语言学习 case3:柱状图(ggchart)

主要涉及到对图的优化,使用ggchart工具包

ggchart 链接:https://thomas-neitmann.github.io/ggcharts/index.html

step1: 安装工具包

install.packages("ggcharts")
install.packages("tidytext")

step2: 导入工具包

library(dplyr)
library(ggplot2)
library(ggcharts)
library(tidytext)

step3:使用数据

data("biomedicalrevenue")

step4: 绘图

plot <- biomedicalrevenue %>%
  filter(year %in% c(2012, 2015, 2018)) %>%
  group_by(year) %>%
  top_n(10, revenue) %>%
  ungroup() %>%
  mutate(company = tidytext::reorder_within(company, revenue, year)) %>%
  ggplot(aes(company, revenue)) +
  geom_col() +
  coord_flip() +
  tidytext::scale_x_reordered() +
  facet_wrap(vars(year), scales = "free_y")
  1. biomedicalrevenue 是一个数据框,其中包含了生物医药公司的营收信息。

  2. %>% 是管道操作符,用于将前一个步骤的结果传递给下一个步骤。

  3. filter(year %in% c(2012, 2015, 2018)) 用于筛选出包含在2012年、2015年和2018年的数据。

  4. group_by(year) 将数据按照年份进行分组。

  5. top_n(10, revenue) 选取每个年份中营收前10的公司。

  6. ungroup() 取消分组,确保后续的操作不受之前的分组影响。

  7. mutate(company = tidytext::reorder_within(company, revenue, year)) 重新排序公司,以确保每个年份中的公司按照营收从高到低排列。

  8. ggplot(aes(company, revenue)) 创建一个 ggplot 对象,设置 X 轴为公司名称,Y 轴为营收。

  9. geom_col() 添加堆积柱状图层。

  10. coord_flip() 将坐标轴翻转,使得柱状图变为横向。

  11. tidytext::scale_x_reordered() 根据重新排序的结果调整 X 轴的顺序。

  12. facet_wrap(vars(year), scales = "free_y") 按照年份进行分面,每个年份的柱状图分别显示,Y 轴的刻度独立。

整体来说,这段代码使用 ggplot2 包创建了一个生物医药公司营收的横向堆积柱状图,展示了2012年、2015年和2018年每年的前10位公司。

R 语言学习 case3:柱状图(ggchart)_第1张图片

step5: 优化 v2

plot <- biomedicalrevenue %>%
  filter(year %in% c(2012, 2015, 2018)) %>%
  bar_chart(x = company, y = revenue, facet = year, top_n = 10)
  • 使用 bar_chart 绘制柱状图

R 语言学习 case3:柱状图(ggchart)_第2张图片

你可能感兴趣的:(R语言,r语言,学习,开发语言,数据可视化)