簡體   English   中英

如何在R中將數據幀繪制為熱圖/網格?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM