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

如何在R Shiny中创建环形热图?(R环境中已可实现)

在R Shiny中实现环形热图的解决方案

circlize的绘图依赖R基础绘图系统,直接把普通R脚本里的代码搬到Shiny里会失效——因为Shiny需要明确的绘图输出机制来把图形传递到UI界面。以下是适配Shiny的完整实现方案:

完整Shiny代码

library(shiny)
library(circlize)

ui <- fluidPage(
  # 指定环形热图的输出区域,可调整宽高适配显示
  plotOutput("circularHeatmap", width = "600px", height = "600px")
)

server <- function(input, output) {
  output$circularHeatmap <- renderPlot({
    # 必须重置circlize环境,否则多次刷新会出现绘图冲突
    circos.clear()
    
    # 生成示例数据(替换成你的自定义数据即可)
    data <- matrix(rnorm(100), ncol = 10)
    
    # 设置环形热图参数
    circos.par("track.height" = 0.2)
    
    # 创建环形热图
    chm <- circos.heatmap(data, col = colorRamp2(c(-2, 2), c("blue", "red")))
    
    # 绘制热图区域
    circos.trackPlotRegion(chm)
  })
}

shinyApp(ui, server)

关键注意事项

  • 每次渲染热图前必须调用circos.clear():circlize会保留绘图状态,不重置的话多次刷新页面会导致图形重叠、布局混乱。
  • 数据传递:如果使用自定义数据集,建议把数据放在reactive对象中,或者直接在renderPlot()内部读取,避免依赖全局环境变量引发的问题。
  • 显示调整:根据需求修改plotOutput()的width和height参数,让环形图显示比例更协调。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:32:33