使用ggplot定义图例

问题描述

我正在尝试在R中定义情节的传​​说。

我有以下代码,这只是一个演示,实际数据将具有7-8列和最多20个样本

library(ggplot2)
library(RColorBrewer)


colors <-brewer.pal(n = 3,name = 'Paired')

ids <- c("TestA","TestB","TestC")
bg <-c(23,13,15)
sample1 <- c(21,15,17)
sample2 <- c(27,25,11)
sample3 <- c(24,14,18)
df <- data.frame(ids,bg,sample1,sample2,sample3)

ggplot(df) + 
  geom_col(aes(x = ids,y = bg),size = 1,color = "grey",fill = "grey") +
  geom_point(aes(x = ids,y = sample1),size = 10,color=colors[1],group = 1) +
  geom_point(aes(x = ids,y = sample2),color=colors[2],y = sample3),color=colors[3],group = 1)+ 
  ggtitle("Plot title") +
  xlab("x label") + ylab(" y label") +
  scale_colour_manual(values = c("95% PI"= "black","Forecasts"  = "red","Threshold" = "green"))

它产生以下输出

enter image description here

如何添加下图所示的图例,并确保颜色匹配,即图例颜色与样本或背景色匹配

enter image description here

解决方法

这是您想要的吗?

ggplot(df) + 
  geom_col(aes(x = ids,y = bg,fill = "background"),size = 1,color = "grey") +
  geom_point(data = df %>% pivot_longer(cols = starts_with("sample"),names_to = "sample",values_to = "values"),aes(x = ids,y = values,color = sample),size = 10) +
  ggtitle("Plot title") +
  xlab("x label") + ylab(" y label") +
   scale_colour_manual(name = NULL,values = c("sample1"= "black","sample2"  = "red","sample3" = "green"),labels = c("95% PI","forecasts","Threshold")) +
scale_fill_manual(name = NULL,values = c("background" = "grey"))  

enter image description here

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...