plotly.R icon indicating copy to clipboard operation
plotly.R copied to clipboard

Issue when specifying both the size and color mapping in a scatter plots

Open lepennec opened this issue 5 years ago • 2 comments

Hi,

I can not manage to specify both the size and the color mapping with completely satisfactory results.

If I specify the size mapping globally:

library(plotly)
df <- data.frame(x = 1:12, y = 1:12, s = 1:12, g = rep(c("A", "B", "C"), 4))

plot_ly(data = df, x = ~x, y = ~y, size = ~s, color= ~g)%>% 
  add_markers()

I have a perfect plot but I suffer from the spurious line.width warning already mentioned in https://github.com/ropensci/plotly/issues/1367

If I specify the size mapping in the marker itself:

plot_ly(data = df, x = ~x, y = ~y, color= ~g)%>% 
  add_markers(marker = list(size = ~s))

The sizes are wrong: it seems there is an ordering by group within plotly which is not used in the markers.

Indeed, sorting the data.frame according to the colors fixes the issue:

df_sorted = df[order(df[['g']]), ]
plot_ly(data = df_sorted, x = ~x, y = ~y, color= ~g)%>% 
  add_markers(marker = list(size = ~s))

Let me know how I can help!

lepennec avatar Apr 11 '20 15:04 lepennec

I had the same issue and it drove me crazy. That comment really saved me. "... sorting the data.frame according to the colors fixes the issue" Thanks!

sschiwek avatar Mar 12 '21 09:03 sschiwek

thanks, help a lot

sqwwww avatar Jun 01 '24 13:06 sqwwww