在 plotly boxplot 中重新安排 Legend

re-arrange Legend in plotly boxplot

我一直在努力重新安排我的一个情节中的传说。下面的例子说明了我目前遇到的问题:

library(plotly)
library(data.table)

test <- data.table(NAME = c(rep(x = "b",10),rep(x = "c",10),rep(x = "a",10)), VALUE = sample(0:100,30, replace = T)/100)

plot_ly(test, x = ~NAME, y = ~VALUE, color = ~NAME, type = "box")

所以,当我 运行 函数时,我得到的是一个带有按字母顺序排列的图例的图("a"、"b"、"c")和箱线图根据图例排序(从左到右)。我想要得到的是一个带有图例的图,它遵循与数据集中相同的顺序("b"、"c"、"a")和相应排序的箱线图。

我不知道如何使用 Plotly 做到这一点,但解决方法是用 data.frame 中的因子替换字符,并按照数据集中的顺序对它们进行排序:

test$NAME <- factor(test$NAME, levels=unique(test$NAME))
plot_ly(test, x = ~NAME, y = ~VALUE, color = ~NAME, type = "box")