为了清楚起见,将图例添加到 ggplot

Posted

技术标签:

【中文标题】为了清楚起见,将图例添加到 ggplot【英文标题】:Adding legend to ggplot for clearity 【发布时间】:2021-12-28 14:40:18 【问题描述】:

所以我需要为此添加一个图例。我觉得我在 aes() 函数上做错了,但我可能是错的。这是我的代码:

library(readxl)
library(ggplot2)
library(ggpmisc)

Mydata <- read_excel('../...') #Data file
df <- subset(data.frame(x1 = Mydata$rc, y1 = Mydata$`O2 (mol/m^3)`), y1 > 0.051 & x1 > 0)         #Points that do count
df2 <- subset(data.frame(x2 = Mydata$rc, y2 = Mydata$`O2 (mol/m^3)`), y2 < 0.051 & y2 > 0)        #Point not taken into account
cols = c('Included in regression' = 'blue', 'Excluded from regression' = 'blue')
fills = c('Included in regression' = 'blue', 'Excluded from regression' = 'white')

ggplot()+
  geom_point(data = df, aes(x1,y1), color = 'blue')+
  geom_point(data = df2, aes(x2,y2), color = 'blue', pch = 1)+
  geom_path(data = df, aes(x1,y1), color = 'blue')+
  geom_smooth(data = df, aes(x1,y1), formula = y~x, method = 'lm', se = FALSE, color = 'red')+
  stat_poly_eq(data = df, formula = y~x, rr.digits = 3, coef.digits = 5,
               aes(x1,y1, label = paste("atop(", after_stat(eq.label), ",", after_stat(rr.label), ")", sep = "")), 
               parse = TRUE, label.x = 'right')+
  xlab(expression('dC'[O2]*'/dt (mol m'^-3*' s'^-1*')'))+
  ylab(expression('C'['O2']*' (mol m'^-3*')'))+
  coord_cartesian(xlim = c(0, 0.00205),ylim = c(0,0.27),expand = c(0,0))+
  theme_bw() + 
  theme(panel.border = element_blank(),
        panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"))

【问题讨论】:

【参考方案1】:

将您的color = '&lt;color&gt;' 语句放入aes()。例如,

geom_point(data = df, aes(x1,y1,color = 'blue')) 

您可能想要管理图例中的标签。在这种情况下,您可以使用

geom_point(data = df, aes(x1,y1,color = 'mylabel')) + 
scale_color_manual(values=c('mylabel'='blue')) 

图例标签将为"mylabel"

【讨论】:

感谢您的反应!我试过这个,但是颜色从我的观点中消失了。我需要明确表示我希望两个点的颜色相同,即蓝色。但是,第一组中的一个应该用相同的蓝色填充,而另一个应该是白色/透明的。 你能修改你的代码以包含一个可重现的例子吗?我不能“Mydata

以上是关于为了清楚起见,将图例添加到 ggplot的主要内容,如果未能解决你的问题,请参考以下文章

将 NA 值的框添加到 ggplot 图例以获取连续地图

如何将图例添加到 ggplot2 中的多行?

ggplot2 不会将图例添加到具有多个层的箱线图

将图例添加到组合的线和条形图 ggplot

将水平线添加到 R 中 ggplot2 中的堆叠条形图,并在图例中显示

使用 R 将图例添加到结合​​ geom_line 和 geom_shape 的 ggplot