【问题标题】:Duplicated legends in ggplot2 for colour and point shapeggplot2 中颜色和点形状的重复图例
【发布时间】:2022-09-27 23:29:14
【问题描述】:

我整天都在与这个图作斗争,与我没有出现问题的其他图相比,并查看了几个链接但没有成功。

我的图表有两个图例。我想合并它们。我想要的结果是图例显示为 \"Sample\"、\"Analyser\"、\"Grab\",其中一个黑色小圆圈用于分析器,一个较大的红色三角形用于抓取。

Example plot with duplicated legend

我已经测试了 \"guides\" 命令,但我没有运气,我确信这只是我正在对我的代码做的事情,但我不能把我的手指放在它上面。

请参阅下面的数据集和图形代码:

数据集

data<-structure(list(run = c(66, 66, 67, 68, 69), date = structure(c(18901,
18901, 18901, 18901, 18902), class = \"Date\"), sample = structure(c(1L,
2L, 1L, 1L, 1L), levels = c(\"F\", \"G\"), class = \"factor\"), no3c = c(3.097800016,
2.99, 3.577300072, 3.960299969, 3.103699923), no2c = c(0.219300002,
0.2, 0.325800002, 0.311100006, 0.386000007)), row.names = 66:70, class = \"data.frame\")

图形

plot <- ggplot(data, aes(x = run, y = no2c, color = sample)) + 
  labs(title = expression(paste(\"C\"))) + 
  xlab(\"Run number\") +
  ylab(expression(paste(\"NO\"[2], \" (mg \" ~L^-1*\'\', \")\"))) + 
  geom_point(aes(shape = sample, size = sample)) + 
  scale_size_manual(values = c(F = 2, G = 4)) +
  geom_line(aes(y=no2c, color=\"no2c\"), color=\"black\", data = subset(data, sample == \'F\')) +
  scale_x_continuous(breaks=seq(65,70,1),limits = c(65,70)) +
  scale_y_continuous(breaks=seq(0,0.6,0.1), limits = c(0,0.6)) +
  theme_bw() + theme(panel.border = element_blank(), panel.grid.major = element_blank(),
                     panel.grid.minor = element_blank(), axis.line = element_line(colour = \"black\"),
                     axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1)) +
  theme(text = element_text(size=12),
        panel.border = element_rect(colour = \"black\", fill=NA, size=0.5),
        legend.position = \"bottom\", legend.title=element_text(size=12), legend.text = element_text(size=12),
        axis.title.y = element_text(size=12),
        plot.title = element_text(size=14, face=\"bold\")) +
  scale_color_manual(name=\"Sample\", 
                     labels=c(\"Analyser\", \"Grab\"),
                     values = c(\"F\"=\"black\", \"G\"=\"red3\"))

非常感谢您的时间和帮助!

    标签: r ggplot2 rstudio legend


    【解决方案1】:

    你需要相同的所有秤的标签和名称(此处为colorsizeshape):

    ... +
      scale_color_manual(name = "Sample", 
                         labels = c("Analyser", "Grab"),
                         values = c("black", "red3")) +
      scale_size_manual(name = "Sample", 
                        values = c(2, 4), 
                        labels = c("Analyser", "Grab")) +
      scale_shape_manual(name = "Sample",
                         values = c(16, 17),
                         labels = c("Analyser", "Grab"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-27
      • 2016-07-13
      • 1970-01-01
      • 2014-06-14
      • 2021-09-05
      • 2015-11-13
      • 2021-10-29
      • 2021-09-17
      相关资源
      最近更新 更多