Как настроить плотные цвета маркеров, чтобы они соответствовали упорядоченным категориям в R?


Используя plotly в R, я хотел бы, чтобы категории были разными цветами (предпочтительно заранее выбранными мной) в порядке # песен. Вот что я попробовал:

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
Проблема в том, что когда я печатаю salesplot, все маркеры находятся в одном цвете (2 песни). Кроме того, если я попытаюсь использовать color=SongRange, легенда будет не в том порядке, который мне нужен.
1 2

1 ответ:

Вы ищете что-то вроде этого?

#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