柱状图太普通怎么办?快来看看棒棒糖图吧!
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()