首页 > 解决方案 > 有两个色阶ggplot

问题描述

我正在尝试为我的线条和点更改不同的颜色。我的数据被拆分,Arm因此在每个时间点应该有两个点和两条线将它们连接到上一个和未来的时间点。

我可以让线条和点的颜色一起改变,但我希望线条是不同的颜色,但仍然基于Arm。例如,我希望 Arm=1 的线条为浅蓝色,Arm=2 的线条为黄色,但要保持它们的点的颜色如下所示。这可能ggplot吗?

任何帮助将非常感激。

是)我有的: 在此处输入图像描述

代码:

ggplot(head(TOT, 12), aes(x=VisitNo, y=Mean)) +
  geom_line(size=1.5, aes(color=as.factor(Arm))) +
  geom_point(size=3, aes(color=as.factor(Arm))) +
  scale_colour_manual(values = c("blue", "orange")) +
  theme_bw()

数据:

TOT <- structure(list(Arm = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L), 
        VisitNo = structure(c(0L, 6L, 12L, 16L, 24L, 36L, 0L, 6L, 12L, 16L, 24L, 36L), 
        label = "VisitNo", class = c("labelled", "integer")), 
        variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), 
        .Label = c("PWB", "SWB", "EWB", "FWB", "AC"), class = "factor"), 
        Mean = c(25.3025326086957, 25.4365119047619, 25.8333333333333, 21.3452380952381, 
                 26, 26.8235294117647, 25.2272727272727, 25.6172839506173, 
                 25.6805555555556, 21.625976744186, 26.24, 26)), 
        row.names = c(NA, 12L), class = "data.frame")

标签: rggplot2

解决方案


如果您只想让线条比点轻一点,可以使用alpha使线条有点透明:

ggplot(head(TOT, 12), aes(x=VisitNo, y=Mean)) +
    geom_line(size=1.5, aes(color=as.factor(Arm)), alpha = 0.4) +
    geom_point(size=3, aes(color=as.factor(Arm))) +
    scale_colour_manual(values = c("blue", "orange")) +
    theme_bw()

推荐阅读