如何更改跟踪中段的颜色?

How can I change colors of segments in trace?

我尝试使用 R plot-ly 中的旭日图更改轨迹的颜色。

我举个例子。

data1 <- data.frame(
ids=c("up","down","noCh","up-win","down-win","up-loss","down-loss",   "noCh-win","noCh-loss"),
labels= c("up","down","noCh","win","loss","win","loss","win","loss"),
parents=c("","","","up","up","down","down","noCh","noCh" ),
stringsAsFactors = FALSE)

p <- plot_ly() %>%
 add_trace(
   ids = data1$ids,
   labels = data1$labels,
   parents =data1$parents,
   type = 'sunburst',
   maxdepth = 3,
   domain = list(column = 1)
 )%>% 
 layout(
 grid = list(columns =1, rows = 1),
 margin = list(l = 0, r = 0, b = 0, t = 0),
 colorway=c("orange","yellow","green")
 )

我得到这样的情节:

我尝试更改外部部分的颜色 ("win", "loss")。赢是红色,输是蓝色。我该如何改变?

一个简单的方法是向您的 data.frame 添加另一列,您可以在其中指定段所需的颜色并将变量传递给您的跟踪:

data1 <- data.frame(
  ids=c("up","down","noCh","up-win","down-win","up-loss","down-loss",   "noCh-win","noCh-loss"),
  labels= c("up","down","noCh","win","loss","win","loss","win","loss"),
  parents=c("","","","up","up","down","down","noCh","noCh" ),
  col = c("orange","yellow","green", rep(c("red", "blue"), 3)),
  stringsAsFactors = FALSE)

p <- plot_ly() %>%
  add_trace(
    ids = data1$ids,
    labels = data1$labels,
    parents =data1$parents,
    type = 'sunburst',
    maxdepth = 3,
    marker = list(colors = data1$col),
    domain = list(column = 1)
  )%>% 
  layout(
    grid = list(columns =1, rows = 1),
    margin = list(l = 0, r = 0, b = 0, t = 0)
  )

p