R-ggchicklet - 圆角条形图绘制

2021-02-22 12:08:38 浏览数 (1)

本期开始继续基础图表(柱形图/条形图(bar charts))的绘制推文教程,但在系列绘制之前,我们先介绍下个人较喜欢的一个绘图R包-ggchicklet包,用于绘制带圆角角度的柱形图(Rounded Segmented Column)。主要涉及的知识点如下:

  • ggchicklet 包简介
  • ggchicklet 实例绘制

ggchicklet 包简介

ggchicklet包具体的绘图函数主要介绍geom_chicklet() 绘图函数,其语法和ggplot2的geom_col()类似,但其提供了radius属性,用于设置圆角角度,其主要语法如下:

代码语言:javascript复制
geom_chicklet(
  mapping = NULL,
  data = NULL,
  position = ggplot2::position_stack(reverse = TRUE),
  radius = grid::unit(3, "pt"),
  ...,
  width = NULL,
  na.rm = FALSE,
  show.legend = NA,
  inherit.aes = TRUE
)

更多详细内容可前往官网:ggchicklet包官网 下面我们通过具体例子对比geom_col()和geom_chicklet()的绘图效果(当眼也是有美化的哦)

ggchicklet 实例绘制

geom_col()可视化绘制

首先,我们简单的构造虚拟数据,代码如下:

代码语言:javascript复制
test_data <- data.frame(
      Class = c("class01", "class02", "class03", "class04", "class05", "class06"), 
      Data = c(2,4,5,7,9,13)
)
test_data

数据如下:

接下来,我们使用ggplot2 对其可视化展示(默认设置):

代码语言:javascript复制
bar_chart <- ggplot(data = test_data)   
  geom_col(aes(x=Class,y=Data,fill=Class))
bar_chart

可以看出这种默认的颜色、主题风格在图表颜值提升上还有很大的空间,接下来我们就结合hrbrthemes主题包、RColorBrewer颜色主题包进行“美化”设置。具体代码如下:

代码语言:javascript复制
library(RColorBrewer)
library(hrbrthemes)
library(ggtext)
bar_chart <- ggplot(data = test_data)   
  geom_col(aes(x=Class,y=Data,fill=Class))  
  scale_fill_manual(values = c(brewer.pal(6,"Paired"))) 
  guides(
      fill = guide_legend(nrow = 1,title = "")
  ) 
  labs(x = "Class",
       y = "Data",
       title = "Base Charts in R Exercise 01: <span style='color:#D20F26'>Bar Charts</span>",
       subtitle = "processed bar charts",
       caption = "Visualization by <span style='color:#DD6449'>DataCharm</span>") 
  theme_ipsum(base_family = "Arial_Narrow")  
  theme(
        plot.title = element_markdown(hjust = 0.5,vjust = .5,color = "black",
                             size = 22, margin = margin(t = 1, b = 12)),
        plot.subtitle = element_markdown(hjust = 0,vjust = .5,size=15),
        plot.caption = element_markdown(face = 'bold',size = 12),
        legend.position = "top",
        legend.direction = "horizontal", 
        legend.key.width = unit(1.5, "lines"), 
        legend.key.height = unit(1, "lines"),
        legend.text = element_text(size = 8, color = "grey20")) 

可视化效果如下:

这里:

代码语言:javascript复制
 scale_fill_manual(values = c(brewer.pal(6,"Paired")))

是使用了RColorBrewer颜色主题包的方法,我后面会抽时间专门出几期关于颜色设置的推文啊。

当然,你也可以设置“暗黑主题”,只需添加如下语句:

代码语言:javascript复制
 
theme_ft_rc()  

可视化结果如下:

geom_chicklet()可视化绘制

该部分只需将上面代码中的geom_col()中的部分更换如下即可:

代码语言:javascript复制
geom_chicklet(aes(x=Class,y=Data,fill=Class),
                    width=.6,
                    radius = grid::unit(15, "pt"))

最终可视化效果如下:

“暗黑主题”的风格结果如下:

总结

本期推文算是基础柱形图之前的“前菜”-ggchicklet包的介绍及实例展示,这个包也是我比较喜欢的R可视化包之一了,当然 hrbrthemes包也需要灵活掌握哦,可以帮你快速制成“高大上”可视化图表作品。

0 人点赞