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