【问题标题】:Plotting range for same variable across two conditions在两个条件下绘制相同变量的范围
【发布时间】:2021-08-10 15:18:40
【问题描述】:

我有一个由 5 列和 12 行组成的输入矩阵。

我正在尝试跨两种方法/条件(纸张,估计)绘制相同变量的范围(比如说宽度)。我可以使用代码跨一种方法/条件绘制范围:

Input <- read.table("File.txt", header = T, sep = "\t")
ggplot(Input, aes(x=Trait))+
  geom_linerange(aes(ymin=min,ymax=max),linetype=3,color="Black")+
  geom_point(aes(y=min),size=3,color="darkgreen")+
  geom_point(aes(y=max),size=3,color="darkgreen")+ labs(y="-log10(P)", x="Traits") +
  theme_bw()

但我想在同一个图中将方法中的每个变量一起绘制。我可以通过为每个变量添加一个额外的后缀来做到这一点 有没有更好的方法来做到这一点?我已经尝试过 shape=Method 但它对我不起作用,任何帮助将不胜感激。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    我建议将Method 映射到color 而不是shape。但是,嘿。这是你的阴谋。 (; 要在不添加后缀的情况下达到您想要的结果,您可以像这样使用position_dodge

    library(tibble)
    library(ggplot2)
    
    ggplot(Input, aes(x = Trait, shape = Method)) +
      geom_linerange(aes(ymin = min, ymax = max, group = Method), linetype = 3, color = "Black", position = position_dodge(.6)) +
      geom_point(aes(y = min), color = "darkgreen", size = 3, position = position_dodge(.6)) +
      geom_point(aes(y = max), color = "darkgreen", size = 3, position = position_dodge(.6)) +
      labs(y = "-log10(P)", x = "Traits") +
      theme_bw()
    

    数据

    set.seed(42)
    
    Input <- tibble(
      Method = rep(c("Paper", "Estimated"), each = 3),
      Trait = rep(c("Width", "Density", "Lenght"), 2),
      Count = rep(c(2, 4, 10), 2),
      min = runif(6, 5, 7),
      max = min + runif(6, 0, 10)
    )
    

    【讨论】:

      猜你喜欢
      • 2014-01-06
      • 2022-12-03
      • 1970-01-01
      • 1970-01-01
      • 2014-07-10
      • 2022-01-18
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      相关资源
      最近更新 更多