簡體   English   中英

geom_tile 中的強制圖例(ggplot,R)

[英]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.

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