使用 ggplot2 在图表中设置特定颜色

sil*_*ter 1 r ggplot2

我想用 ggplot2 绘制这些数据。下面你可以看到我的数据和代码:

library(ggplot2)
library(dplyr)

# Sample data frame (replace this with your actual dataset)
data <- data.frame(
  Column1 = c(1, 2, 3, 4),
  Column2 = c(5, 6, 7, 8),
  Column3 = c(9, 10, 11, 12),
  Column4 = c(13, 14, 15, 16)
)

# Calculate cumulative sums for each column
data <- data %>%
  mutate(
    Cumulative_Column1 = cumsum(Column1),
    Cumulative_Column2 = cumsum(Column2),
    Cumulative_Column3 = cumsum(Column3),
    Cumulative_Column4 = cumsum(Column4))
Run Code Online (Sandbox Code Playgroud)

现在我尝试用下面的代码绘制这些数据:

ggplot(data, aes(x = Column1)) +
          geom_area(aes(y = Cumulative_Column1, fill = "Cumulative_Column1"), alpha = 0.3) +
          geom_area(aes(y = Cumulative_Column2, fill = "Cumulative_Column2"), alpha = 0.3) +
          geom_area(aes(y = Cumulative_Column3, fill = "Cumulative_Column3"), alpha = 0.3) +
          geom_area(aes(y = Cumulative_Column4, fill = "Cumulative_Column4"), alpha = 0.3) +
          scale_fill_manual(values = c(
            "Cumulative_Column1" = "red",
            "Cumulative_Column2" = "blue",
            "Cumulative_Column3" = "green",
            "Cumulative_Column4" = "purple"
          )) +
          labs(
            x = " ",
            y = "Cumulative Sum",
            title = "",
            caption = "Source:"
          ) +
          theme_minimal()
Run Code Online (Sandbox Code Playgroud)

这段代码给出了如下图所示的图:

在此输入图像描述

所以图表中的颜色和图例中的颜色不一样。

任何人都可以帮助我如何解决这个问题并具有与图例中的颜色相同的颜色吗?

Qui*_*ten 5

它确实绘制了颜色,但由于透明度和多个重叠颜色,它看起来有所不同。您可以通过交换绘制颜色的顺序来解决此问题,以防止重叠透明度。然后你也不需要alpha这样的:

library(ggplot2)
library(dplyr)

ggplot(data, aes(x = Column1)) +
  geom_area(aes(y = Cumulative_Column4, fill = "Cumulative_Column4")) +
  geom_area(aes(y = Cumulative_Column3, fill = "Cumulative_Column3")) +
  geom_area(aes(y = Cumulative_Column2, fill = "Cumulative_Column2")) +
  geom_area(aes(y = Cumulative_Column1, fill = "Cumulative_Column1")) +
  scale_fill_manual(values = c(
    "Cumulative_Column1" = "red",
    "Cumulative_Column2" = "blue",
    "Cumulative_Column3" = "green",
    "Cumulative_Column4" = "purple"
  )) +
  labs(
    x = " ",
    y = "Cumulative Sum",
    title = "",
    caption = "Source:"
  ) +
  theme_minimal()
Run Code Online (Sandbox Code Playgroud)

创建于 2023 年 10 月 31 日,使用reprex v2.0.2