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

R语言Plotly旭日图颜色显示异常问题求助

修复Plotly旭日图自定义颜色不显示的问题

你的问题出在错误使用了layout(colorway)来设置节点颜色,colorway是Plotly用于自动分配离散颜色的全局色环,无法直接映射到你数据中每行的自定义颜色。旭日图的节点颜色需要通过trace的marker.color参数直接绑定到你的colors列,同时根节点(中心节点)的颜色也会通过这个参数正确渲染。

修改后的代码

library(plotly)
test <- data.frame(
  stringsAsFactors = FALSE,
  ids = c("pH", "SpecificConductance","TotalNitrogen","TotalPhosphorous","OE_Macroinvertebrate",
          "PctBankOverheadCover","PctFinesLessThan2mm","PctBankCovered","PctBankStable",
          "FloodplainConnectivity","WaterQuality","Biodiversity","WatershedFunction",
          "SiteScore"),
          
  labels = c("pH<br>A",
             "SpecificConductance <br> A", "TotalNitrogen <br> A","TotalPhosphorous <br> F",
             "OE_Macroinvertebrate <br> B", "PctBankOverheadCover <br> B",
             "PctFinesLessThan2mm <br> A","PctBankCoveredMIM <br> B",
             "PctBankStable <br> A","FloodplainConnectivity <br> F",
             "WaterQuality <br> B","Biodiversity <br> B",
             "WatershedFunction <br> B", "SiteScore <br> B"),
  parents = c("WaterQuality", "WaterQuality","WaterQuality",
              "WaterQuality","Biodiversity","Biodiversity","WatershedFunction","WatershedFunction",
              "WatershedFunction","WatershedFunction","SiteScore","SiteScore",
              "SiteScore",
              NA ),
  colors = c("#481567FF","#481567FF","#481567FF","#FDE725FF","#238A8DFF","#238A8DFF",
    "#481567FF","#238A8DFF","#481567FF","#FDE725FF","#238A8DFF","#238A8DFF","#238A8DFF",
    "#238A8DFF"
  )
)

# 关键修改:在trace中设置marker.color绑定colors列
test_plot <- plot_ly(test, ids = ~ids, labels = ~labels, parents = ~parents, 
                     type = 'sunburst',
                     marker = list(color = ~colors)  # 新增这一行
)

test_plot

核心说明

  • marker = list(color = ~colors):直接将数据框中每行的colors值绑定到对应旭日图节点的颜色,这是Plotly旭日图自定义节点颜色的正确方式。
  • 根节点(SiteScore)的parents为NA,它的颜色由自身行的colors值决定,修改后会正常显示你设置的#238A8DFF。
  • 移除了layout(colorway = ~colors),这个参数的作用是当未指定marker.color时,自动循环使用颜色列表分配给节点,无法实现你需要的精准颜色映射。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 23:43:15