簡體   English   中英

使用R的具有零和零的矩陣的熱圖

[英]Heatmaps for a matrix with ones and zeros using R

以下是我的示例數據,基本上是一個矩陣,其中的行名稱為人員姓名,並且每行都有一些列。 我在數據中只有零和一。 我想使用熱圖可視化它。 (紅色代表0,綠色代表1,或任何其他顏色編碼)。 如何使用R完成此操作? 您可以使用只有一和零(二進制值)的任何示例數據集向我展示。

在此處輸入圖片說明

使用ggplot的另一種方法

library(ggplot2)
library(reshape2)
library(plyr)
library(scales)

df <- structure(list(people = structure(c(2L, 1L), .Label = c("Dwayne", "LeBron"), class = "factor"),
                 G = c(1L, 0L),
                 MIN = c(1L, 0L),
                 PTS = c(0L, 1L),
                 FGM = c(0L,0L),
                 FGA = c(0L,0L),
                 FGP = c(1L,1L)),
            .Names = c("people", "G", "MIN", "PTS", "FGM", "FGA", "FGP"),
            class = "data.frame",
            row.names = c(NA, -2L))


df.m <- melt(df)
df1.m <- ddply(df.m, .(variable), transform, rescale = value)
p <- ggplot(df1.m, aes(variable, people)) +
geom_tile(aes(fill = rescale), colour = "black")
p + scale_fill_gradient(low = "green", high = "red")
show(p)

教程采用

highcharter:

library(highcharter)
library(tidyr)
library(dplyr)
df<-data.frame(row=c("Dwayne","James"),G=c(1,0),MIN=c(1,0),PTS=c(0,1),FGM=c(0,0),FGA=c(0,0),FGP=c(1,1))
rownames(df)<-c("Dwayne","James")
df$row<-rownames(df)
data<-df%>%
     tidyr::gather(row,value)%>%
     setNames(c("name","variable","value"))


hchart(data, "heatmap", hcaes(x = variable, y = name, value = value)) %>% 
  hc_colorAxis(stops = color_stops(2, c("red","green")))

在此處輸入圖片說明 更新:您可以將hc_size(height = 800)添加為height = 800或進行類似的操作

  x<-50
  hg<-length(unique(data$name))*x+100

  hchart(data, "heatmap", hcaes(x = variable, y = name, value = value)) %>% 
    hc_colorAxis(stops = color_stops(2, c("red","green")))%>% 
    hc_size(height = hg)

數據集中的每一行使圖表增大50點。 您可以在x更改

該答案使用了plotly ,因此將其添加為另一個答案。 使用與以下相同的數據。

library(plotly)
df1 <- as.matrix(df)
p <- plot_ly(x = colnames(df), y = df[,1], z = as.matrix(df[-1]), colors = colorRamp(c("green", "red")), type = "heatmap")

就獲取輸出而言,這比ggplot2簡單得多。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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