[英]force legend in geom_tile (ggplot, R)
我無法使用 geom_tile 向 ggplot 添加連續圖例。
我不得不操作 layer_data (出於各種原因),因此獲得了以下類型的數據框:
data =
fill x y PANEL group xmin xmax ymin ymax colour size linetype alpha width height
1 #C4FFB1 1 19 1 19 0.5 1.5 18.5 19.5 NA 0.1 1 NA NA NA
2 #E7FFDE 1 20 1 20 0.5 1.5 19.5 20.5 NA 0.1 1 NA NA NA
3 #FAFFF8 1 1 1 1 0.5 1.5 0.5 1.5 NA 0.1 1 NA NA NA
4 #C7FFB5 1 13 1 13 0.5 1.5 12.5 13.5 NA 0.1 1 NA NA NA
5 #DFFFD3 1 10 1 10 0.5 1.5 9.5 10.5 NA 0.1 1 NA NA NA
6 #A3FF8B 1 15 1 15 0.5 1.5 14.5 15.5 NA 0.1 1 NA NA NA
7 #FAFFF8 1 18 1 18 0.5 1.5 17.5 18.5 NA 0.1 1 NA NA NA
8 #CEFFBC 1 17 1 17 0.5 1.5 16.5 17.5 NA 0.1 1 NA NA NA
9 #F5FFF0 1 5 1 5 0.5 1.5 4.5 5.5 NA 0.1 1 NA NA NA
10 #D9FFCB 1 25 1 25 0.5 1.5 24.5 25.5 NA 0.1 1 NA NA NA
11 #D3FFC4 1 4 1 4 0.5 1.5 3.5 4.5 NA 0.1 1 NA NA NA
12 #76FF5D 1 24 1 24 0.5 1.5 23.5 24.5 NA 0.1 1 NA NA NA
13 #5AFF44 1 23 1 23 0.5 1.5 22.5 23.5 NA 0.1 1 NA NA NA
14 #E4FFDA 1 9 1 9 0.5 1.5 8.5 9.5 NA 0.1 1 NA NA NA
15 #C1FFAD 1 16 1 16 0.5 1.5 15.5 16.5 NA 0.1 1 NA NA NA
16 #C4FFB1 1 14 1 14 0.5 1.5 13.5 14.5 NA 0.1 1 NA NA NA
17 #E4FFDA 1 2 1 2 0.5 1.5 1.5 2.5 NA 0.1 1 NA NA NA
18 #FFFFFF 1 12 1 12 0.5 1.5 11.5 12.5 NA 0.1 1 NA NA NA
19 #D6FFC8 1 6 1 6 0.5 1.5 5.5 6.5 NA 0.1 1 NA NA NA
20 #9CFF83 1 22 1 22 0.5 1.5 21.5 22.5 NA 0.1 1 NA NA NA
21 #DFFFD3 1 11 1 11 0.5 1.5 10.5 11.5 NA 0.1 1 NA NA NA
22 #DFFFD3 1 8 1 8 0.5 1.5 7.5 8.5 NA 0.1 1 NA NA NA
23 #C7FFB5 1 21 1 21 0.5 1.5 20.5 21.5 NA 0.1 1 NA NA NA
24 #CEFFBC 1 7 1 7 0.5 1.5 6.5 7.5 NA 0.1 1 NA NA NA
25 #FAFFF8 1 3 1 3 0.5 1.5 2.5 3.5 NA 0.1 1 NA NA NA
26 #A87FFF 1 27 1 27 0.5 1.5 26.5 27.5 NA 0.1 1 NA NA NA
27 #FF6140 1 26 1 26 0.5 1.5 25.5 26.5 NA 0.1 1 NA NA NA
28 #C7FFB5 2 19 1 46 1.5 2.5 18.5 19.5 NA 0.1 1 NA NA NA
29 #E2FFD6 2 20 1 47 1.5 2.5 19.5 20.5 NA 0.1 1 NA NA NA
30 #FFFFFF 2 1 1 28 1.5 2.5 0.5 1.5 NA 0.1 1 NA NA NA
31 #CEFFBC 2 13 1 40 1.5 2.5 12.5 13.5 NA 0.1 1 NA NA NA
32 #DFFFD3 2 10 1 37 1.5 2.5 9.5 10.5 NA 0.1 1 NA NA NA
33 #DFFFD3 2 15 1 42 1.5 2.5 14.5 15.5 NA 0.1 1 NA NA NA
34 #CBFFB9 2 18 1 45 1.5 2.5 17.5 18.5 NA 0.1 1 NA NA NA
35 #CEFFBC 2 17 1 44 1.5 2.5 16.5 17.5 NA 0.1 1 NA NA NA
36 #F5FFF0 2 5 1 32 1.5 2.5 4.5 5.5 NA 0.1 1 NA NA NA
37 #C4FFB1 2 25 1 52 1.5 2.5 24.5 25.5 NA 0.1 1 NA NA NA
38 #E2FFD6 2 4 1 31 1.5 2.5 3.5 4.5 NA 0.1 1 NA NA NA
39 #B4FF9E 2 24 1 51 1.5 2.5 23.5 24.5 NA 0.1 1 NA NA NA
40 #DCFFCF 2 23 1 50 1.5 2.5 22.5 23.5 NA 0.1 1 NA NA NA
41 #FFFFFF 2 9 1 36 1.5 2.5 8.5 9.5 NA 0.1 1 NA NA NA
42 #D3FFC4 2 16 1 43 1.5 2.5 15.5 16.5 NA 0.1 1 NA NA NA
43 #E7FFDE 2 14 1 41 1.5 2.5 13.5 14.5 NA 0.1 1 NA NA NA
44 #FCFFFB 2 2 1 29 1.5 2.5 1.5 2.5 NA 0.1 1 NA NA NA
45 #EFFFE9 2 12 1 39 1.5 2.5 11.5 12.5 NA 0.1 1 NA NA NA
46 #EAFFE1 2 6 1 33 1.5 2.5 5.5 6.5 NA 0.1 1 NA NA NA
47 #E2FFD6 2 22 1 49 1.5 2.5 21.5 22.5 NA 0.1 1 NA NA NA
48 #FAFFF8 2 11 1 38 1.5 2.5 10.5 11.5 NA 0.1 1 NA NA NA
49 #F5FFF0 2 8 1 35 1.5 2.5 7.5 8.5 NA 0.1 1 NA NA NA
50 #D3FFC4 2 21 1 48 1.5 2.5 20.5 21.5 NA 0.1 1 NA NA NA
51 #D9FFCB 2 7 1 34 1.5 2.5 6.5 7.5 NA 0.1 1 NA NA NA
52 #EAFFE1 2 3 1 30 1.5 2.5 2.5 3.5 NA 0.1 1 NA NA NA
53 #9669FF 2 27 1 54 1.5 2.5 26.5 27.5 NA 0.1 1 NA NA NA
54 #FF7F5E 2 26 1 53 1.5 2.5 25.5 26.5 NA 0.1 1 NA NA NA
當我從這個數據框創建我的 ggplot
ggplot(data , aes(x , y , fill = I(fill))) + geom_tile()
到目前為止,沒有任何圖例出現,也沒有任何 scale_fill_gradient() 或 scale_color_gradient() 有幫助。
不創建圖例的示例:
ggplot(gp , aes(x , y , fill = I(fill))) + geom_tile() +
scale_fill_gradient(name='',low = "white",
high = "green",
na.value = "grey50",
guide = "colourbar",
aesthetics = "colour")
在這種情況下有沒有辦法強迫傳奇?
編輯:本質上,我想要一個帶有圖例的這種類型的圖形(至少是綠色的,但最好是三種顏色漸變)。
謝謝!
如果我對您的理解正確,您希望按字面意思解釋填充顏色,因此您需要scale_fill_identity
。 默認情況下,它沒有圖例,因此您需要在調用中添加guide = 'legend'
:
ggplot(data , aes(x , y , fill = fill)) +
geom_tile() +
scale_fill_identity(guide = 'legend')
你說過你想要一個連續的刻度,但這更難,因為不清楚你的連續刻度應該代表什么,也不知道上面應該有什么數字。 在某種程度上,您可以對顏色進行反向轉換,因為我猜您的初始填充從純綠色變為純白色。 這意味着您可以將顏色反向轉換為 0 到 1 之間的數值:
ggplot(data , aes(x , y , fill = (colSums(col2rgb(fill))-255)/510)) +
geom_tile() +
scale_fill_gradient(limits = c(0, 1), name = NULL,
low = 'green', high = 'white')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.