最近在同学的推荐下发现一个比较不错的在线交互式绘图平台——chiplot[1],该平台主页如下图所示,网址为https://www.chiplot.online/ 。通过观察图形风格可以发现,图形绘制主要使用R语言和Python,因此本系列主要利用R语言或Python复原该网站内的图形,一来向网站创作者学习绘图思路,二来帮助一些初学者更好的理解R语言或者Python的绘图code。
![](https://oss-emcsprod-public.modb.pro/wechatSpider/modb_20221009_7a1a917a-477e-11ed-a381-fa163eb4f6be.png)
本期主要复原其中的棒棒糖图(lollipop plot),如上图所示。棒棒糖图属于条形图(bar plot) 的一种,主要用于展示数据的分布状况。
1、数据读入
数据可从该网站上进行下载,也可在公众号后台回复【20221001】进行下载。
library(ggplot2)
setwd("C:\\Users\\Acer\\Desktop")
df <- read.table("棒棒糖图.tsv", sep = "\t", header = TRUE)
head(df)
# x y
#1 PT30_11 1.38
32 PT30_17 3.65
#3 PT30_49 2.88
#4 PT34_13 2.96
#5 PT34_14 15.93
#6 PT34_16 2.70
df$overall = "Wechat:日常分享的小懒猫"
2、图形绘制
ggplot(df, aes(x, y)) +
geom_segment(aes(xend = x), color = "grey", yend = 0) +
geom_point(aes(size = y),color = "#69B3A2", show.legend = FALSE) +
scale_size_area(max_size = 12) +
scale_y_continuous(breaks = seq(-4,18,2)) +
facet_wrap(~overall) + #add title
theme_classic() +
labs(x = "", y = "") +
theme(
panel.grid.major.y = element_line(),
axis.text.x = element_text(size = 12, angle = 45, hjust = 1),
axis.text.y = element_text(size = 12),
strip.background = element_rect(fill = "grey90", size = 0.5),
strip.text = element_text(size = 15)
)
![](https://oss-emcsprod-public.modb.pro/wechatSpider/modb_20221009_7a516e52-477e-11ed-a381-fa163eb4f6be.png)
3、其他
关于该图形的交互式绘图可以进一步在chiplot网站上点击尝试。其他绘图方法可进一步阅读本公众号其他推文。
如有帮助请多多点赞哦!
参考资料
chiplot: https://www.chiplot.online/,
文章转载自日常分享的小懒猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。