You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除scRNA-seq归一化表达数据小提琴图中的水平短线?

如何移除scRNA-seq归一化表达数据小提琴图中的水平短线?

嘿,你好呀!刚看完你的问题和代码,一下子就找到问题根源啦——那些你想去掉的小水平短线,其实是你代码里的geom_errorbar()函数生成的哦!

你看这段代码:

geom_errorbar(
aes(ymin=value, ymax=value), width=.2,
position=position_dodge(.9))

这里你把ymin和ymax都设成了value,相当于给每个单细胞的表达值都画了一条长度为0的误差线,也就是你看到的那些小短横。

解决方法超简单,直接把这段geom_errorbar()的代码删掉就可以啦!修改后的完整代码如下:

data.df <- sc.long.hiv@meta.data[, c("seurat_clusters", "group_main")]

data.df["value"] <- sc.long.hiv$SCT@data["IFNG", ]

data.df <- data.df %>% mutate(group = paste(seurat_clusters, group_main, sep=":"))

data.df.2 <- data.df %>% group_by(group)

X <- str_split(data.df.2$'group', ":", 2, simplify=TRUE)

data.df.2$'seurat_clusters' <- X[, 1]

data.df.2$'group_main' <- X[, 2]

p <- data.df.2 %>% ggplot(aes(fill=group_main, y=value, x=seurat_clusters, color=group_main)) +
scale_color_manual(values = c("#17606D", "#AA1628"))+
geom_violin( position="dodge", stat = "ydensity", width=1) +
scale_fill_manual(values = c("#17606D", "#AA1628")) +
theme_classic() +
xlab('Cluster') +
ylab('Normalized Gene Expression')

运行这段修改后的代码,你就能得到干净的小提琴图,不会再有那些小短线啦!如果之后你想添加比如各组的均值线或者统计显著性标记,再考虑用geom_errorbar(这时候要正确设置ymin/ymax为均值±标准差之类的)或者其他geom函数就好~

备注:内容来源于stack exchange,提问作者Rachel Pearson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 07:50:30