使用R的1和0矩阵的热图

使用R的1和0矩阵的热图,r,heatmap,R,Heatmap,下面是我的示例数据,基本上是一个以行名作为人名的矩阵 以及每行的一些列。数据里只有0和1。我想用热图将其可视化。(红色表示0,绿色表示1或任何其他颜色编码)。我如何使用R实现这一点?您可以演示如何使用任何示例数据集,其中只有1和0(二进制值) 与highcharter: library(highcharter) library(tidyr) library(dplyr) df<-data.frame(row=c("Dwayne","James"),G=c(1,0),MIN=c(1,0),P

下面是我的示例数据,基本上是一个以行名作为人名的矩阵 以及每行的一些列。数据里只有0和1。我想用热图将其可视化。(红色表示0,绿色表示1或任何其他颜色编码)。我如何使用R实现这一点?您可以演示如何使用任何示例数据集,其中只有1和0(二进制值)


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")))

数据集中的每一行使图表变大50个点。您可以在
x

中更改它,这只是使用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)
库(ggplot2)
图书馆(E2)
图书馆(plyr)
图书馆(比例尺)

df此答案使用
绘图
,因此将其添加为另一个答案。使用与以下数据相同的数据

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")
library(plotly)

df1可能重复或任何其他标准热图问题
tg为什么不直接使用
image
功能,或者任何其他“单命令热图功能”,例如
pheatmap
heatmap.2
,等等?谢谢,它起到了作用,但我有200多行要显示,输出似乎被压缩到页面中显示。我不希望这些行被挤压,因为这会使可视化变得不清晰。我可以使用滚动条将其向下拉,但我希望可视化效果清晰。我如何完成它?@yome hope
hc\u size(高度=800)
可以修复it@jyjek感谢您的更新,它是完美的,但实际值正在热图上显示。我希望它无论如何都能显示,但不能显示“实际”值。我想展示的方式是,无论哪里有绿色热图(非零值),我都不想展示第5个数字。我应该在哪里调整代码?@jyjek否则如何更改热图中显示的值的颜色?
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")