前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >有点歧义

有点歧义

原创
作者头像
小洁忘了怎么分身
发布2022-12-28 20:34:14
3800
发布2022-12-28 20:34:14
举报
文章被收录于专栏:生信星球生信星球

title: "有点歧义"

output: html_document

date: '2022-12-25'

editor_options:

chunk_output_type: console


平平无奇小提琴图
代码语言:text
复制
library(ggplot2)
p1 = ggplot(iris, aes(x = Species, y = Sepal.Length)) +
  geom_violin(aes(fill = Species))+
  theme_bw()
p2 = ggplot(iris, aes(x = Species, y = Sepal.Length)) +
  geom_violin(aes(fill = Species),scale = "width")+
  theme_bw()
p3 = ggplot(iris, aes(x = Species, y = Sepal.Length)) +
  geom_violin(aes(fill = Species),scale = "width",trim = F)+
  theme_bw()
library(patchwork)
p1+p2+p3+plot_layout(guides = "collect")

其中涉及到的两个参数:

scale 默认count,点的数量决定小提琴图的胖瘦,scale = "width"是让多个小提琴显示同样的最大宽度。

trim 默认T 会修剪小提琴的上下尖尖,画出来的图范围就是数据分布范围。trim = F 画出来的图上下两端是尖的,颜值变高了。

这两个参数很有意思,我最近画图时发现,之前写的代码套示例数据是没看出问题的,但是换了数据瓦特了啊。

代码语言:text
复制
load("plot_dat.Rdata")
ggplot(dat,aes(Cell_type,Proportion,fill = Group)) + 
  geom_violin(trim = F) + 
  theme_bw() 

哈,这个图存在好几个问题

1.小提琴为什么是一条线,琴呢?

就是因为横坐标数量太多,所以小提琴被挤扁了,调图的宽度没用。scale参数你值得拥有

2.我画的是cibersort免疫浸润的结果,怎么可能会有负数?

神奇的trim = F 的极端场景就是这个,很有歧义。因为翻了之前的示例代码,带有trim = F,一开始没注意它,现在看到,会让人误解数据分布范围,用的时候得比较一下和正确的数据分布范围查的多不多,不能为了美观丧失正确性啊!

代码语言:text
复制
ggplot(dat,aes(Cell_type,Proportion,fill = Group)) + 
  geom_violin(trim = F,scale = "width") +
  theme_bw() +
  theme(axis.text.x = element_text(angle=80,hjust = 1))+
  ggtitle("离离原上谱")

3.横坐标有覆盖。

这个倒是简单哦。斜一下就行了。

所以正确的代码应该是

代码语言:text
复制
ggplot(dat,aes(Cell_type,Proportion,fill = Group)) + 
  geom_violin(scale = "width") + #trim 默认T,不写也是一样的
  theme_bw() +
  theme(axis.text.x = element_text(angle=80,hjust = 1))

哈哈!这个问题难度大不,反正我是排查了好一会。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 平平无奇小提琴图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档