[英]How to plot dataframe in R as a heatmap/grid?
我非常感謝R的一些幫助。我想繪制一個網格化數據的數據框(就像從左上角到右下角一樣沿着對角線向下跑)。 我已經看過很多使用ggplot2的例子,但是,我只是缺乏R操縱數據結構所需的經驗; 我已經在LISP和Java編程多年了但我的腦袋不會繞R :-(
數據如下所示:
tension cluster migraineNoAura migraineAura
tension NA 1.5 6.960453e+00 3.596953
cluster 1.943113e+08 NA NA NA
migraineNoAura 8.462798e+00 NA NA 7.499999
migraineAura 2.833333e+00 NA 7.148313e+07 NA
這只是一個小子集,它是一個60x60的數據幀。 注意NA
。
我希望有一個60x60的網格,用值着色,x和y用數據框中的名字標記。
首先,您需要將數據幀格式從寬格式格式化為長格式。 以下是使用tidyverse
格式化數據框的示例。
library(tidyverse)
dt2 <- dt %>%
rownames_to_column() %>%
gather(colname, value, -rowname)
head(dt2)
# rowname colname value
# 1 tension tension NA
# 2 cluster tension 1.943113e+08
# 3 migraineNoAura tension 8.462798e+00
# 4 migraineAura tension 2.833333e+00
# 5 tension cluster 1.500000e+00
# 6 cluster cluster NA
現在,我們已經准備好使用ggplot2
使用繪制熱圖geom_tile
。
ggplot(dt2, aes(x = rowname, y = colname, fill = value)) +
geom_tile()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.