簡體   English   中英

將附加圖例項添加到 ggplot2 以進行重疊填充 (geom_rect)

[英]Add additional legend item to ggplot2 for overlapping fill (geom_rect)

我想為兩個geom_rect的重疊部分/顏色向 ggplot2 圖例添加一個附加項。

代表:

# library
library(ggplot2)
library(tidyverse)

# make colors
adjustcolor("red", alpha.f = 0.1) -> red.tra
adjustcolor("blue", alpha.f = 0.1) -> blue.tra

#get data

data <-  structure(list(unclear = c(0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 
                                    1), start = structure(c(12784, 13879, 9496, 17897, 11323, 12053, 
                                                            16801, 16071, 17167, 17532, 16071, 11323, 11688), class = "Date"), 
                        stop = structure(c(18628, 18628, 16801, 18262, 13879, 17897, 
                                           18262, 17897, 17532, 18628, 17897, 18262, 11688), class = "Date"), 
                        group = c("R", "C", "C", "A", "A", "R", "M", "N", 
                                            "N", "O", "OB", "H", "H")), class = "data.frame", row.names = c(NA, 
                                                                                                            -13L))                                                                                                                                                         


#plot
ggplot(data = data)+
  geom_rect(data = data %>% filter(unclear==0), aes(xmin=start, xmax=stop, ymin=0, ymax=0.7, fill="one")) +
  geom_rect(data = data %>% filter(unclear==1), aes(xmin=start, xmax=stop, ymin=0, ymax=0.7, fill="two"))+
  scale_fill_manual("colors",values=c(red.tra,blue.tra), labels=c("one","two"))+
  facet_wrap(~group, ncol = 1, strip.position = "left") 

創建於 2022-12-08,使用reprex v2.0.2

我正在尋找一種方法,使用透明藍色和紅色之間重疊的顏色向 colors 圖例添加第三個項目。

我使用colorRampPalette組合red.trablue.tra ,將它們放在漸變調色板中,並將它們之間的顏色設為 select。 然后我添加了一個幻影geom_rect()實際上並沒有出現在任何地方,但它允許在圖例中添加一個額外的條目。

# do colors
adjustcolor("red", alpha.f = 0.1) -> red.tra
adjustcolor("blue", alpha.f = 0.1) -> blue.tra
colfunc <- colorRampPalette(c(red.tra, blue.tra))
purp.tra <- colfunc(3)[2]
adjustcolor(purp.tra, alpha.f = 0.1) -> purp.tra

# plot
ggplot(data = data) +
  geom_rect(data = data %>% filter(unclear==0), aes(xmin=start, xmax=stop, ymin=0, ymax=0.7, fill="one")) +
  geom_rect(data = data, aes(xmin=start, xmax=stop, ymin=0, ymax=0, fill="one and a half")) +
  geom_rect(data = data %>% filter(unclear==1), aes(xmin=start, xmax=stop, ymin=0, ymax=0.7, fill="two"))+
  scale_fill_manual("colors",values=c(red.tra, purp.tra, blue.tra), labels=c("one", "one and a half", "two"))+
  facet_wrap(~group, ncol = 1, strip.position = "left") 

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM