可视化:小提琴图

藏宝库编辑 7 天前 3711 0 来自 中国
  今天继承分享生信分析中常见的图形 -- 小提琴图。绘制的过程依然是基于ggplot2,然后在此底子上举行美化以符合大众的审美标准!
小提琴图可用于显示数据分布及其概率密度。可以认为是箱形图和密度图的结合体,主要用来显示数据的分布外形。所以,可以从图中大致获取到箱线图的所有信息。固然小提琴的别的一个优势在于,除了显示箱线图的分位数统计外,它还可以还显示了数据的整体分布,这一优点在数据有多个峰值时体现地尤为显着。
绘图

  话不多说,绘图代码如下:
library(ggplot2)library(dplyr)library(tidyr)# 获取测试数据data <- read.table("https://raw.githubusercontent.com/zonination/perceptions/master/probly.csv", header=TRUE, sep=",")# 数据清洗为必要的格式data <- data %>%   gather(key="text", value="value") %>%  mutate(text = gsub("\\.", " ",text)) %>%  mutate(value = round(as.numeric(value),0)) %>%  filter(text %in% c("Almost Certainly","Very Good Chance","We Believe","Likely","About Even", "Little Chance", "Chances Are Slight", "Almost No Chance"))head(data)              text value1 Almost Certainly    952 Almost Certainly    953 Almost Certainly    954 Almost Certainly    955 Almost Certainly    986 Almost Certainly    95# 绘图ggplot(data, aes(x=text, y=value, fill=text, color=text)) + geom_violin(width=2.1, size=0.2) + theme(legend.position="none",axis.text.x=element_text(angle=20)) + xlab('') + ylab("Assigned Probability (%)")效果如下:
美化

  虽然图已经画出来了,但是这个图如今是素颜的状态,这但是不符合大众的审美了。所以,我们多多少少必要给这个图化个妆,妆扮一下来疑惑一下观众:
library(viridis)ggplot(data, aes(x=text, y=value, fill=text, color=text)) + geom_violin(width=2.1, size=0.2) + xlab('') + ylab("Assigned Probability (%)") + scale_fill_viridis(discrete=TRUE) + scale_color_viridis(discrete=TRUE) + theme_minimal() + theme(legend.position="none") + coord_flip()效果如下:
  图好欠好看,配色起到很大的作用,这里我们利用viridis包的配色方案,该包还具有一个优点就是在映射颜色时可以或许让接近的值具有相似的颜色,而彼此远离的值具有更多差别的颜色,形成较大的感知范围让人易于区分。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 14:15, Processed in 0.137119 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表