2

在 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

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

4

1 回答 1

4

你在寻找这样的东西吗?

#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
于 2016-05-21T19:49:37.593 回答