контроль цвета факторной группы в 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))
вся помощь оценена.