首页 > 解决方案 > 如何使用 ggplot2 在 R 中为图中的标记区域创建图例

问题描述

嘿伙计们,我正在尝试绘制一些我修改过的光谱数据。我正在使用ggplot2图表。

graphik <- ggplot(data = spektrum2,  mapping=aes(x=y0000,y=x0001))+
  geom_rect(mapping=aes(xmin=285, xmax=290.3, ymin=min(x0001-.5), ymax=max(x0001+0.5),`fill="orange")) +
  #geom_text(aes(x=288+(288.5-290.3)/2, y=min(x0001)+(max(x0001)-min(x0001))/2, label="Carbon-edge",color="brown",vjust=-30), size=4) +
  geom_rect(mapping=aes(xmin=524, xmax=539, ymin=min(x0001-.5), ymax=max(x0001+0.5), fill="yellow")) +
  #geom_text(aes(x=539+(524-539)/2, y=min(x0001)+(max(x0001)-min(x0001))/2, label="Oxygen-edge",color="brown",vjust=-30), size=4) +
  geom_line(mapping=aes(color="blue"))+  
  labs(title = "Isoprene#8", title.position="center")+
  coord_cartesian(xlim = c(270, 570), ylim = c(0, 1.4))+
  ylab("Optical Desity [-]")+
  xlab("Energy [eV]")+
  scale_x_continuous(breaks=c(seq(270,580, 20)))+
  scale_y_continuous(breaks=c(seq(0,2, 0.1)))+
  theme(plot.title = element_text(hjust = 0.5))+
  stat_peaks(aes(color = "red"),shape = 20, span = 14, size = 2)+ 
  stat_label_peaks(geom = "label_repel", span = 10, segment.color = "black", size = 3, vjust = 1, nudge_y = 0.8, direction = "y") + 
  scale_color_identity()+
  scale_fill_identity()

print(graphik)```

我用 标记了特定区域geom_rect。第一个区域是橙色,第二个是黄色。现在我要创造一个传奇,但我不知道如何。图例应显示我的光谱名称,在这种情况下为蓝色,标记区域为橙色和蓝色。不幸的是,我不能在这里上传图片。

标签: rggplot2plotgraph

解决方案


推荐阅读