我有要繪製爲熱圖此熔融的基體,與在較低的矩陣相關係數和P值在上部三角形改變顏色只在GGPLOT2熱圖的上三角矩陣
> melted_corfinal
Var1 Var2 value
1 iHS iHS 1.00
2 nSL iHS 0.89
3 XP-EHH iHS 0.01
4 PBS iHS 0.00
5 iHS nSL 0.00
6 nSL nSL 1.00
7 XP-EHH nSL 0.01
8 PBS nSL 0.00
9 iHS XP-EHH 0.00
10 nSL XP-EHH 0.00
11 XP-EHH XP-EHH 1.00
12 PBS XP-EHH 0.18
13 iHS PBS 0.90
14 nSL PBS 0.41
15 XP-EHH PBS 0.00
16 PBS PBS 1.00
但是,我找不到只改變上三角矩陣的顏色,同時保持值的方法。我希望它只是白色(背景)。
下面是我想出迄今代碼:
p <- ggplot(melted_corfinal, aes(Var2, Var1)) +
geom_tile(aes(fill = value)) +
geom_text(aes(label = round(value, 2))) +
scale_fill_continuous("",limits=c(0, 1), breaks=seq(0,1,by=0.2),low = "#fee8c8", high = "#e34a33") +
theme_light() + theme(legend.position="none",axis.title.x = element_blank(),axis.title.y = element_blank()) +
guides(fill = guide_colorbar(barwidth = 20)) +
ylim(rev(levels(melted_corfinal$Var1))) + xlim(levels(melted_corfinal$Var2))
plot(p)
而且,我還是想保留2位小數存在於表,但他們是「四捨五入」時,他們都爲零。 dput:
structure(list(Var1 = structure(c(1L, 2L, 3L, 4L, 1L, 2L, 3L,
4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L), .Label = c("iHS", "nSL",
"XP-EHH", "PBS"), class = "factor"), Var2 = structure(c(1L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L), .Label = c("iHS",
"nSL", "XP-EHH", "PBS"), class = "factor"), value = c(1, 0.89,
0.01, 0, 0, 1, 0.01, 0, 0, 0, 1, 0.18, 0.9, 0.41, 0, 1)), .Names = c("Var1",
"Var2", "value"), row.names = c(NA, -16L), class = "data.frame")
參見:http://pseudofish.com/triangle-heatmaps-in-r-using-ggplot.html – Djork
我認爲只是將上三角形的值變成了「NA」,並且沒有繪製並因此是白色的,但是在這裏我仍然**想要保留這些值。編輯我的問題,以便更清楚。 – GabrielMontenegro
您可以創建2組值,其中一個值由geom_tile的NA替換,另一個值保存爲geom_text。 – Djork