【发布时间】:2019-06-27 20:53:33
【问题描述】:
我的数据包括每个样本的几个基因的突变组合、计数和筛选细菌的抗生素的 MIC(这些是离散的)。
这是玩具数据:
structure(list(count = c(4L, 26L, 96L, 93L, 2L, 22L), combo = structure(c(22L,
19L, 2L, 2L, 20L, 19L), .Label = c("HFALSEAIVTANGGAL", "HFALSEAIVTANGGAP",
"HFALSEAIVTANGGTP", "HFALSEAIVTANSGAP", "HFALSEAIVTAYGGTP", "HFALSEAIVTTNSGAP",
"HFALSEAIVTVNGGAL", "HFALSEAIVTVNGGAS", "HFALSEAIVTVNSGAP", "HFALSEAMTTAYGSAA",
"HFALSEAMTTAYGSAP", "HFALSEAMTTAYGSTP", "HTRUEAIVSANGGAP", "HTRUEAIVTANGGAP",
"HTRUEAIVTANSGAP", "HTRUEAIVTTNSGAP", "HTRUEAMTTAYGSAP", "YFALSEAIVTANGGAL",
"YFALSEAIVTANGGAP", "YFALSEAIVTANGGAS", "YFALSEAIVTANSGAP", "YFALSEAIVTTNGGAL",
"YFALSEAIVTTNGGAP", "YFALSEAIVTTNSGAP", "YFALSEAIVTVNGGAL", "YFALSEAMTTANGGAP",
"YFALSEAMTTANGGTP", "YFALSEAMTTAYGSAA", "YFALSEAMTTAYGSAP", "YFALSEAMTTAYGSAS",
"YFALSEAMTTAYGSTP", "YFALSENFNFNFNFNFNFNFNFNFNF", "YTRUEAIVTANGGAL",
"YTRUEAIVTANGGAP", "YTRUEAMTTAYGSAP"), class = "factor")), row.names = c(NA,
6L), class = "data.frame")
每个 MIC 类别都如此(在 log2 范围内有 8 个)。
我正在尝试创建这样的小提琴情节(来源:https://www.thelancet.com/journals/laninf/article/PIIS1473-3099(18)30225-1/fulltext ):
我试图写一些代码,但没有走多远:
p <- ggplot(mydata, aes(factor(combo), y=mic)) +
geom_violin() +
geom_boxplot(width=.01, outlier.size=0, fill="grey50") +
stat_summary(fun.y=median, geom="point", fill="white", shape=21, size=4)
p
我可以轻松地创建一个计数表,但我希望有一些视觉效果,如下图所示。有人可以引导我朝着正确的方向前进吗?
p <- ggplot(mydata, aes(x = combo, y=mic))
p + geom_violin() + geom_jitter(height = 0, width = 0.1, aes(color=factor(combo)))
【问题讨论】:
-
您展示的示例图表使用对数刻度作为 y 轴。尝试将
+ scale_y_continuous(trans = "log")添加到您的情节中。 -
@Gregor 似乎对 MIC 值取幂,但总体数字没有变化。
-
如果这不起作用,而不是共享您的数据图片,您能否以复制/粘贴格式(
dput()最好)共享您的数据的一小部分样本,以便我们可以在提出建议之前自己尝试解决方案? -
按照建议添加了 dput()。
-
ggplot2.tidyverse.org/reference/geom_violin.html 添加点尝试尝试:
p + geom_violin() + geom_jitter(height = 0, width = 0.1, aes(color=factor(combo)))。