柱状图太普通怎么办?快来看看棒棒糖图吧!

简单的说,棒棒图就是条形图与散点图的结合,下面小果将详细带大家认识一下棒棒图。

棒棒糖图其实类似于柱状图加散点图的效果,因为他的形状就是由俩部分组成(点+线条),因此在ggplot中,我们只要通过geom_point()函数绘制”糖”的那一部分,geom_segment()函数绘制“棒棒”那一部分,就可轻松绘制出这种图形

这是一种点图,也有称为大头针图、棒棒糖图,是条形图的一种变形,同样也有柱形图形式的大头针图。它让图表不像条形图、柱形图那么重,也更强调大头针圆点的相对位置的比较,而不是大头针的长度比较。

我们看他的特点:

  1. 条形图变形为大头针状,比条形图更简洁、省墨
  2. 垂直的平均线
  3. 左对齐、粗体突出显示的类别轴标签
  4. 表示数值轴截略的闪电标记

在绝大部分可视化需求中,条形图、折线图、饼图是最为普遍的选择。然而有时图表的吸引力往往更加重要。有一种图表小而精致,令人眼前一亮,那就是棒棒糖图,顾名思义,是因为它长得像棒棒糖~如果以具有吸引力的方式来展示数据,棒棒糖图不仅能抓住用户的注意力,还能吸引他们更深入地探索数据。

那么如何用R来画棒棒图呢?这次我们使用ggpubr包进行作图。

# 载入数据

data(“mtcars”)

dfm <- mtcars

# 转为factor类型的数据

dfm$cyl <- as.factor(dfm$cyl)

# 增加一列name

dfm$name <- rownames(dfm)

pdf(“bangbang.pdf”) ###保存图片

library(ggpubr)

ggdotchart(dfm, x = “name”, y = “mpg”,

color = “cyl”, # 按照cyl填充颜色

palette = c(“#00AFBB”, “#E7B800”, “#FC4E07”), # 修改颜色

sorting = “ascending”,

add = “segments”, # 添加棒子

ggtheme = theme_pubr(), # 改变主题

xlab=””

)

dev.off()

###添加标签值

pdf(“bang.pdf”)

ggdotchart(dfm, x = “name”, y = “mpg”,

color = “cyl”,

palette = c(“#00AFBB”, “#E7B800”, “#FC4E07”),

sorting = “descending”,

add = “segments”,

group = “cyl”, # 按组排序

dot.size = 6,

label = round(dfm$mpg), # 加入mpg的值作为点标签

font.label = list(color = “white”, size = 9,

vjust = 0.5), # 调整标签参数

ggtheme = theme_pubr()

)

dev.off()

好了,今天的分享就到这里了,欢迎关注”生信果”、“云生信学生物信息学”、“尔云间meta分析”公众号,以及知乎、BiliBili等,我们能主要发表或收录生物信息学的教程,以及基于R的分析和可视化等内容。