контроль цвета факторной группы в ggvis - r

У меня есть вопрос об управлении цветом точек данных в ggvis.

У меня есть фрейм данных, который я фильтрую несколькими способами (в блестящем приложении, если это имеет значение). Это часто приводит к отсутствию наблюдений за раскрашиванием точек данных группы I, поскольку они присутствуют в результирующем фильтрованном кадре данных. Это, очевидно, приводит к тому, что разные цвета появляются на разных графиках, что сбивает с толку.

Это довольно близкий пример:

set.seed(101)
dfvis <- data.frame(x = runif(20), y = runif(20), mygroup = LETTERS[1:5])
dfvis


dfvis %>% 
  ggvis(x= ~x, y= ~y)  %>% 
  layer_points(fill = ~factor(mygroup))

Давайте отфильтруем группу -

  dfvis <- dfvis %>% filter(mygroup!="A")

    dfvis %>% 
      ggvis(x= ~x, y= ~y)  %>% 
      layer_points(fill = ~factor(mygroup))

Здесь буква «B» теперь синего цвета, а все остальные группы сдвинуты на одну единицу в соответствии с порядком цвета.

Есть ли способ, при выполнении нескольких фильтров на одном и том же df, всегда обеспечивать один и тот же цвет для каждого уровня фактора / группы?

Одна хитрость, которая раньше работала в ggplot, заключалась в добавлении одного наблюдения NA в конец кадра данных для каждого факторного уровня. На первый взгляд, это работает нормально, поскольку цвета возвращаются в правильном порядке, но обратите внимание на фальшивые данные в верхнем левом углу!

dfvis1 <- rbind(dfvis, data.frame(x=NA, y=NA, mygroup="A"))

dfvis1 %>% 
  ggvis(x= ~x, y= ~y)  %>% 
  layer_points(fill = ~factor(mygroup))

вся помощь оценена.

Ответы на вопрос(1)

Ваш ответ на вопрос