用ggcharts将20行ggplot2代码优化到3行!
ggplot2高度自由,意味着出一张高颜值图表需要调节很多参数,今天的主角-ggcharts,是ggplot2的high-level封装,以极少的参数设置,即可实现更高颜值的图表。
ggcharts栗子
通过一个栗子展示ggcharts的优势。
我们想可视化2012、2015、2018三年中,公司市值最高的10家生物医药公司的营业收入情况,
使用ggplot2
library(dplyr)
library(ggplot2)
library(ggcharts)
data("biomedicalrevenue")
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")
用了“100个”%>%处理数据;接近20行的代码;使用facet_wrap分面;使用group_by(year)分组;使用top_n(10, revenue)展示前10家公司;还用了ungroup()和mutate等函数。
使用ggcharts
biomedicalrevenue %>%
filter(year %in% c(2012, 2015, 2018)) %>%
bar_chart(x = company, y = revenue, facet = year, top_n = 10)
ggcharts中3行代码即可完成,同时效果也更好看,facet = year和top_n = 10两个参数即可实现按year分面,展示前10家公司。
ggcharts支持多种theme
ggcharts支持theme_ggcharts、theme_hermit、theme_ng、theme_nightblue和theme_coffee内置主题。
例如,theme_hermit,
spec <- highlight_spec("Roche", "yellow", "#7A7A7A")
biomedicalrevenue %>%
filter(year %in% c(2011, 2013, 2015, 2017)) %>%
lollipop_chart(company, revenue, facet = year, highlight = spec, top_n = 5) +
theme_hermit(axis = "y", grid = "Y") # 调用theme_hermit
例如,ttheme_ng
例如,theme_ggcharts
ggcharts支持多种图表
ggcharts支持多种图形,
金子塔图
棒棒糖图
哑铃图
发散柱状图
等等。。。。。。。
-推荐阅读-
👇加入学习(备注:627)