【问题标题】:Remove grey vertical stripes separating samples in geom_tile删除 geom_tile 中分隔样本的灰色垂直条纹
【发布时间】:2021-12-01 11:11:11
【问题描述】:

嗨,我的数据 (data_long) 如下所示:

 genes  sample  value   Group Type
 A1 O7high  6796.448    G0   A
 AA O7high  4997.250    G0   A
 A3 O7high  9477.100    G0   A
 A4 O7high  6083.558    G0   A   
 A1 08low   075.364     G0   B
 AA 08low   13066.130   G0   B

p <- ggplot(data_long, aes(x=sample, y=value,group=genes,color=Group))  + 
  geom_tile(aes(fill = as.factor(Type),color = NA,y = 7000), height = Inf, alpha = 0.5) +
  geom_line(aes(linetype=Group,color=Group, size=Group)) + 
  stat_summary(aes(group = -1), fun=median, geom='line',size=2, color='orange') + 
  theme_classic() + 
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
  scale_y_sqrt()+
  scale_colour_manual(values=c("black","blue"))+
  scale_size_manual(values=c(0.3,1.5))+
  scale_linetype_manual(values=c("dashed", "solid"))+
  theme_classic()

p + theme_bw() +
  theme(panel.grid = element_blank(),
        panel.border = element_blank())

我已经使用上面的代码来绘制中线以及突出显示我感兴趣的一些基因。一切正常,但是当看到情节时,有这些垂直的灰线(分离每个样本?) 我不确定如何删除这些行。我希望相同类型的 geom_tile 没有任何线条。请告诉我如何删除这些行

【问题讨论】:

  • 您的示例不可重现。但是,如果您将 color=Group 从对 ggplot 的调用中的第一个 aes 调用中取出并仅在 geom_line 中的 aes 调用中使用它,您可能会发现这些行消失了
  • 您的绘图代码缺少对geom_tile()(或类似的)的调用,该调用会绘制背景颜色,因此如果没有生成此图的代码,就不可能看到出了什么问题。跨度>
  • 我的错!我已经编辑了这个例子。谢谢指出
  • 谢谢,杰瑞德。我有一个新字段-Type。它用于生成瓷砖fill = as.factor(Type)。我在删除图块上的垂直线时遇到问题
  • 不是特定于这个问题,但是如果你使用一些空格,你的代码会更容易阅读(对你自己和其他人来说),尤其是当你有几个函数的字符串添加在一起时单行。您还分配了 3 次预制主题,可能会覆盖至少一些手动主题设置。但是,如果主题设置实际上与问题无关,您最好将其删除以保持问题最小化 (minimal reproducible example) — 比例尺也是如此

标签: r ggplot2 aesthetics geom-tile


【解决方案1】:

感谢您使用所需信息更新您的问题。也许您可以通过将color = NA 移到aes() 之外来移除灰线,例如

library(tidyverse)
data_long <- read.table(text = "genes  sample  value   Group Type
A1 O7med  6796.448    G0   A
AA O7med  4997.250    G0   A
A3 O7high  9477.100    G0   A
A4 O7high  6083.558    G0   A   
A1 08low   075.364     G0   B
AA 08low   13066.130   G0   B", header = TRUE)

p <- ggplot(data_long, aes(x=sample, y=value,group=genes,color=Group))  + 
  geom_tile(aes(fill = as.factor(Type), y = 7000), color = NA, height = Inf, alpha = 0.5) +
  geom_line(aes(linetype=Group,color=Group, size=Group)) + 
  stat_summary(aes(group = -1), fun=median, geom='line',size=2, color='orange') + 
  theme_classic() + 
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
  scale_y_sqrt()+
  scale_colour_manual(values=c("black","blue"))+
  scale_size_manual(values=c(0.3,1.5))+
  scale_linetype_manual(values=c("dashed", "solid"))

p + theme_bw() +
  theme(panel.grid = element_blank(),
        panel.border = element_blank())

reprex package (v2.0.1) 于 2021 年 10 月 13 日创建

这适用于您的实际数据集吗?

【讨论】:

  • 谢谢,杰瑞德。它完全按照我想要的方式工作
  • 不客气-感谢您在帖子中添加必要的详细信息-如果此答案解决了您的问题,请考虑accepting it
猜你喜欢
  • 2016-04-10
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
相关资源
最近更新 更多