[英]Flip/transpose a heatmap in ggplot2
與@Axeman 的(但更有趣)相比,一個糟糕的解決方案是對數據應用旋轉變換矩陣。
為了理解我們需要什么樣的變換,我只在 3D 散點圖上繪制了對角線(值=1)點。
繞 z(值)軸的旋轉矩陣
包括添加的常數,最終方程為
可能有更好的方法來矢量化這種轉換,但我就是這樣做的。
rot_m <- matrix(c(0,-1,0,1,0,0,0,0,1),3,3)
ftransform <- function(x){
t(rot_m %*% as.numeric(matrix(m[x,],3,1)) + matrix(c(0,11,0),3,1))
}
foo <- lapply(1:nrow(m),ftransform)
foo <- data.frame(do.call(rbind,foo))
names(foo) <- c("Var1","Var2","value")
ggplot(foo, aes(Var1,Var2,fill=value)) +
geom_tile()
編輯:對奇怪的圖像格式/布局表示歉意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.