绘制 geom_area 没有变量填充和着色线/或 geom_line 没有变量重叠

Plot geom_area with no filling and colouring lines by variable/ or geom_line without variables overlapping

据我所知,geom_area 和 geom_line 绘制变量的方式不同,因此该区域彼此重叠(它们具有不同的 y 轴起点),而 geom_line 它们不断交叉和重叠。你知道这是为什么吗?

我想要以下其中一项:

  1. 使用geom_area我可以不用颜色填充密度吗? 根据“案例”为所选变量的行着色?
  2. 或者我可以像我所做的那样使用 geom_line 但避免变量的交叉和重叠吗?

谢谢

dataA <- tibble::tibble(
          value = c(10,20,30,30,20,10,5,8,10,8,7,2,9,25,28,29,15,6),
        Sample = rep(c(1:6),3),
        Variable = rep(c(rep("C1",6),rep("C2",6),rep("C3",6))),
        Case = rep(c(rep("o",6), rep("a",6),rep("o",6))))
    #This is the geom_area graph
        p1 <- ggplot(dataA, aes(x=Sample, y=value, fill=Variable)) +
        geom_area(colour="black", size=.2, alpha=.8) +
          theme_bw()
    #This is the geom_line
        p2 <- ggplot(dataA, aes(x=Sample, y=value, color=Case, group = interaction(Variable,Case))) + 
          geom_line(colour="black") +
          geom_line(data=subset(dataA, Case == "o"), colour="green4", size=1.5)

使用geom_area:使用group代替fill

ggplot(dataA, aes(x=Sample, y=value, group=Variable)) +
    geom_area(colour="black", size=.2, alpha=.8, fill="white") +
    theme_bw()

您还可以使用 aes(color=Case)

更改线条的颜色

geom_area

中使用color代替fill
library(ggplot2)
dataA <- tibble::tibble(
  value = c(10,20,30,30,20,10,5,8,10,8,7,2,9,25,28,29,15,6),
  Sample = rep(c(1:6),3),
  Variable = rep(c(rep("C1",6),rep("C2",6),rep("C3",6))),
  Case = rep(c(rep("o",6), rep("a",6),rep("o",6))))

ggplot(dataA, aes(x=Sample, y=value, group = interaction(Variable,Case))) +
  geom_area(aes(colour=Case), size=.2, alpha=.8, fill = NA) +
  theme_bw() +
  scale_color_manual(values = c("o" = "green4", "a" = "red"))

reprex package (v0.3.0)

于 2020-04-20 创建

这是否回答了您的问题?