如何用R的plot_ly为旭日图(sunburst)自定义分段颜色?
解决Plotly旭日图自定义分段颜色问题
在Plotly的旭日图(sunburst)中,直接使用colors参数是用于指定颜色比例尺,而非直接为每个分段分配自定义颜色。要实现每个分段对应指定颜色,需要通过marker参数传递颜色列表。
修改后的完整代码
library(plotly) tab <- data.frame( labels = c("Total", "Planerlöse", "Abgeltung", "Bund", "Kanton Thurgau", "Kanton Thurgau Netto", "Gemeinden"), parents = c("", "Total", "Total", "Abgeltung", "Abgeltung", "Kanton Thurgau", "Kanton Thurgau"), values = c(100, 46, 54, 23.76, 30.24, 20.26, 9.97), colors = c("#f28f1c", "#fef4e8", "#2771b0", "#e9f1f7", "#b5b5b5", "#787878", "#333333") ) fig <- plot_ly(tab, labels = ~labels, parents = ~parents, values = ~values, type = 'sunburst', branchvalues = 'total', marker = list(colors = ~colors) # 关键修改:通过marker传递自定义颜色 ) fig
修改说明
- 移除了数据框中多余的
type和branchvalues列(这两个属于Plotly绘图参数,无需放在数据框内) - 将原代码中的
colors=colors替换为marker=list(colors=~colors),让Plotly直接读取数据框colors列的颜色值,为每个分段匹配指定颜色
内容的提问来源于stack exchange,提问作者user11841097
相关产品推荐
相关产品推荐

