我试图在 ggplot2 中叠加两个散点图。目标是使点的外部根据一个变量(6 个类别,因子)着色,内部填充另一个连续变量(数字)的渐变颜色。

我写了两段代码,每一段都是独立工作的(请看下面的截图)。

    ggplot(PCA_isotopes_2, aes(x=PC1, y=PC2)) +
              theme_classic() +
              geom_point(aes(color = factor(subspecies)), shape = 1, size = 2.95, stroke=1, alpha=5/6) +
              scale_color_manual(breaks = c("gutturalis", "rg.hybrids", "rt", "rustica", "tg", "tytleri"), values=c("#0066CC", "#9933CC", "#FFCC99", "#CC0000", "#33CC99", "#FFFF00"))

ggplot(PCA_isotopes_2, aes(x=PC1, y=PC2)) +
          theme_classic() +
          geom_point(aes(color = carbon.ratio), size = 2.88, alpha=5/6) +
          scale_colour_gradient(low = "blue", high = "yellow")

r - 在ggplot2中叠加两个不同色阶的散点图-LMLPHP

r - 在ggplot2中叠加两个不同色阶的散点图-LMLPHP

当我尝试以这种方式覆盖它们时:
    p <- ggplot(PCA_isotopes_2, aes(x=PC1, y=PC2)) +
  theme_classic() +
  geom_point(aes(color = carbon.ratio), size = 2.88, alpha=5/6) +
  scale_colour_gradient(low = "blue", high = "yellow")

    p + geom_point(aes(color = factor(subspecies)), shape = 1, size = 2.95,         stroke=1, alpha=5/6) +
    scale_color_manual(breaks = c("gutturalis", "rg.hybrids", "rt", "rustica", "tg", "tytleri"), values=c("#0066CC", "#9933CC", "#FFCC99", "#CC0000", "#33CC99", "#FFFF00"))

我收到错误消息:

“'颜色'的比例已经存在。为'颜色'添加另一个比例,其中
将取代现有的规模。
错误:提供给离散刻度的连续值”。

我花了几个小时试图弄清楚为什么它不起作用。我将非常感谢帮助!

谢谢,
乔治

最佳答案

通常,您只能映射一次美学。这是一个解决方法,它使用 fill 美学作为连续变量的替代方法,使用 shape = 21 。但是,我更喜欢完全映射到不同的美学,例如 shape ,就像在第二个版本中一样。

library(tidyverse)
ggplot(iris, aes(x = Petal.Length, y = Petal.Width)) +
  theme_classic() +
  geom_point(
    mapping = aes(colour = Species),
    shape = 1,
    size = 3,
    stroke = 2,
    alpha = 5 / 6
    ) +
  geom_point(
    mapping = aes(fill = Sepal.Length, colour = NA),
    size = 2.88,
    alpha = 5 /6,
    shape = 21
  ) +
  scale_fill_gradient(low = "blue", high = "yellow")

library(viridis)
#> Loading required package: viridisLite
ggplot(iris, aes(x = Petal.Length, y = Petal.Width)) +
  theme_classic() +
  geom_point(
    mapping = aes(colour = Sepal.Length, shape = Species),
    size = 3,
    alpha = 5 / 6
  ) +
  scale_colour_viridis()

reprex package (v0.2.0) 于 2018 年 4 月 19 日创建。

关于r - 在ggplot2中叠加两个不同色阶的散点图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49931060/

10-12 19:52