You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Plotly创建带数值行名的热力图遇问题求解决方案

解决Plotly中数值行名热力图的问题

当数据集行名为数值类型时,直接用rownames(data)传递给Plotly的y参数会导致y轴被当作连续数值处理,出现布局或显示异常。只需将数值行名显式转换为字符类型,就能让Plotly将其识别为离散类别,正常渲染热力图。

修改后的完整代码

set.seed(051939)
df <- data.frame(loci = sample(1000:5000, size = 50, replace = TRUE), a = runif(50), b = runif(50))
df <- tibble::column_to_rownames(df, "loci")
data <- as.matrix(df)

# 核心修改:将行名转为字符型,确保Plotly识别为离散类别
plotly::plot_ly(
  x = colnames(data),
  y = as.character(rownames(data)),
  z = data,
  type = "heatmap"
)

补充优化(可选)

如果需要让y轴按数值大小排序显示,可以在转换字符后,通过layout参数指定类别顺序:

plotly::plot_ly(
  x = colnames(data),
  y = as.character(rownames(data)),
  z = data,
  type = "heatmap"
) %>%
  plotly::layout(
    yaxis = list(
      categoryorder = "array",
      categoryarray = as.character(sort(as.numeric(rownames(data))))
    )
  )

内容的提问来源于stack exchange,提问作者MicroBiostat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:27:11