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

2023-03-15  本文已影响0人  花生学生信

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

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


这是一种点图,也有称为大头针图、棒棒糖图,是条形图的一种变形,同样也有柱形图形式的大头针图。它让图表不像条形图、柱形图那么重,也更强调大头针圆点的相对位置的比较,而不是大头针的长度比较。
我们看他的特点:
条形图变形为大头针状,比条形图更简洁、省墨
垂直的平均线
左对齐、粗体突出显示的类别轴标签
表示数值轴截略的闪电标记

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

那么如何用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()
上一篇下一篇

猜你喜欢

热点阅读