如何调整 plotly 标记颜色以匹配 R 中的有序类别?

How to adjust plotly marker colors to match ordered categories in R?

在 R 中使用 plotly,我希望类别按照歌曲的顺序使用不同的颜色(最好由我预先选择)。这是我尝试过的:

salesplot <-plot_ly(producersales, type="scatter", x=Producer, y=SalesPerSong, color=c('20+ songs', '11 songs','8-10 songs','5-7 songs', '3-4 songs', '2 songs'), size=SalesPerSong, mode="markers")
## Sample of my data
head(producersales)
               Producer NoOfSongs TotalSales SalesPerSong  SongRange
1             Timbaland        24    3446852       143619  20+ songs
2            Just Blaze        23    3134585       136286  20+ songs
3            Kanye West        20    3338410       166920  20+ songs
4 Jerome "J-Roc" Harmon        11    1165000       105909   11 songs
5          The Neptunes        11    1419877       129080   11 songs
6               No I.D.         9    1437008       159668 8-10 songs

问题是当我打印销售图时,所有标记都是一种颜色(2 首歌曲)。另外,如果我尝试使用 color=SongRange,则图例的顺序不符合我的需要。

您在找这样的东西吗?

#order factor like you want
producersales$SongRange  <- factor(producersales$SongRange , 
                                   levels = c("8-10songs", "11songs", "20+songs"))

#select colour you want
cols <- c("red", "blue", "black")
#plot
salesplot <- plot_ly(producersales, 
                     type = "scatter", 
                     x = Producer, 
                     y = SalesPerSong, 
                     color = SongRange,
                     colors = cols, 
                     mode = "markers")
salesplot