2017-04-10 100 views
0

我想根據日期和小時在熱圖上繪製連續變量(稱爲)。在R熱圖中填充空方塊

我顯示我data.frame的

> data 
     value hour  day 
1 4.0775374 17 martes 
2 5.9107966 13 martes 
3 3.9318256 12 martes 
4 2.9444390 10 martes 
5 4.9767337 17  lunes 
6 3.7841896 13  lunes 
7 4.9904326 11  lunes 
8 3.1780538 20 domingo 
9 2.9444390 19 domingo 
10 3.6635616 16 domingo 
11 2.7080502 14 domingo 
12 2.8903718 21 sábado 
13 2.0794415 15 sábado 
14 4.3944492 14 sábado 
15 2.1972246 12 sábado 
16 2.0794415 12 sábado 
17 1.9459101 11 sábado 
18 4.3694479 19 viernes 
19 3.5835189 11 viernes 
20 2.9957323 19 jueves 
21 2.4849066 15 jueves 
22 3.7376696 13 jueves 
23 2.1972246 11 jueves 
24 2.0794415 10 jueves 
25 5.6664267 20 miércoles 
26 6.1800167 18 miércoles 
.. ...   .. ....... 
186 2.5649494 13 domingo 

R代碼裏面:

ggplot(data = data,aes(x=day, y=hour, fill=value)) + 
geom_tile() + 
scale_fill_continuous(low = 'yellow', high = 'blue')+ 
theme_classic() 

輸出:

HeatmapR

問題:我需要填補空方(沒有NA值)在熱圖的黑色色塊。

解決方案:

data = data %>% complete(hour, nesting(day)) 

後來加入na.value = 'color'scale_fill_continuous功能。

+0

你可以在'theme'黑色使用'panel.background'顏色整個面板。或者,您可以展開數據集,以便存在「日期」和「小時」的所有組合(但缺少NA)。對於後一種選擇,你可以使用'tidyr :: complete'之類的東西。 – aosmith

+0

非常感謝@aosmith。我從來沒有使用過這個庫,但我知道它。解決方案:data%>%complete(小時,嵌套(日))並將na.value ='color'添加到scale_fill_continuous函數。 –

回答

0

你快到了!只需添加你scale_fill_continuous這樣喜歡na.value = 'salmon'或任何顏色:

ggplot(data = data,aes(x=day, y=hour, fill=value)) + 
geom_tile() + 
scale_fill_continuous(low = 'yellow', high = 'blue', na.value = 'salmon')+ 
theme_classic() 
+0

感謝您的回答。但我的data.frame沒有NA值。當我說空方塊時,我的意思是那些對連續變量沒有價值的日子和小時。 –

+0

數據框中未考慮。例如,(day =「domingo」,hour =「day」)在我的data.frame中不存在 –