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

Continuous color causes error when x or y is factor

Open aushev opened this issue 5 years ago • 1 comments

When I try to take color from numeric variable and one of the axes is factor, it raises error Error in Summary.factor(...) : ‘range’ not meaningful for factors:

data(mpg)
mpg$classF <- as.factor(mpg$class)

# error when x is factor AND color is numeric:
mpg %>% 
  plot_ly(x = ~classF, y = ~cyl, color = ~displ) %>%
  add_markers()
# Error in Summary.factor(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,  : 
#                             ‘range’ not meaningful for factors

# works fine when x is character:
mpg %>% 
  plot_ly(x = ~class, y = ~cyl, color = ~displ) %>%
  add_markers()

# also works fine if color is factor or character:
mpg %>% 
  plot_ly(x = ~classF, y = ~cyl, color = ~as.character(displ)) %>%
  add_markers()

aushev avatar Nov 11 '20 14:11 aushev

I had the same problem. Converting to a character is only a partial workaround since the order of the levels in an ordered factor is no longer preserved. The bug should be addressed via https://github.com/plotly/plotly.R/pull/2404

BeppoBrem avatar Nov 30 '24 21:11 BeppoBrem