gpt4 book ai didi

r - 自定义绘图热图的悬停文本

转载 作者:行者123 更新时间:2023-12-01 12:22:34 24 4
gpt4 key购买 nike

我有一个 matrix (来自多种条件的基因表达):

set.seed(1)
mat <- matrix(rnorm(50*10),nrow=50,ncol=10,dimnames=list(paste("C",1:50,sep="."),paste("G",1:10,sep=".")))

我想将其绘制为 heatmap使用 plotlyR .
require(plotly)
heatmap.plotly <- plot_ly(x=colnames(mat),y=rownames(mat),z=mat,type="heatmap",colors=colorRamp(c("darkblue","white","darkred")),colorbar=list(title="Score",len=0.4)) %>%
layout(yaxis=list(title="Condition"),xaxis=list(title="Gene"))

工作正常。

但是,我想添加仅在悬停时才能看到的文本。

我认为这会奏效:
conditions.text <- paste(paste("C",1:50,sep="."),rep(paste(LETTERS[sample(26,10,replace=T)],collapse=""),50),sep=":")
heatmap.plotly <- plot_ly(x=colnames(mat),y=rownames(mat),z=mat,type="heatmap",colors=colorRamp(c("darkblue","white","darkred")),colorbar=list(title="Score",len=0.4),hoverinfo='text',text=~conditions.text) %>%
layout(yaxis=list(title="Condition"),xaxis=list(title="Gene"))

但事实并非如此。将鼠标悬停在 plotly 上时,我实际上看不到任何文字。

请注意,我正在使用 matrix而不是 melted data.frame .

最佳答案

您将一个 50x10 的数组传递到您的热图中,但将 50 个条目的列表作为hoverinfo。热图和文本的输入必须具有相同的尺寸。

library(plotly)
set.seed(1)
mat <- matrix(rnorm(50*10),nrow=50,ncol=10,dimnames=list(paste("C",1:50,sep="."),paste("G",1:10,sep=".")))

conditions.text <- paste(paste("C",1:50,sep="."),rep(paste(LETTERS[sample(26,10,replace=T)],collapse=""),500),sep=":")
conditions.text <- matrix(unlist(conditions.text), ncol = 10, byrow = TRUE)

plot_ly(z=mat,
type="heatmap",
hoverinfo='text',
text=conditions.text)

关于r - 自定义绘图热图的悬停文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42726843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com