ggvis でデータポイントの色を制御することについて質問があります。
複数の方法でフィルタリングしているデータフレームがあります(重要な場合に備えて、光沢のあるアプリ内で)。これにより、結果のフィルタリングされたデータフレームに存在することにより、データポイントを色付けしているグループの観測が行われないことがよくあります。これにより、明らかに異なるプロットに異なる色が表示され、混乱を招きます。
これは非常に近い例です:
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」は青色になり、他のすべてのグループは色の順序で 1 つ上に移動します。
同じ df で複数のフィルターを実行するときに、因子/グループの各レベルで常に同じ色を確保する方法はありますか?
以前に ggplot で機能した 1 つのトリックは、因子レベルごとにデータフレームの最後に 1 つの NA 観測を追加することでした。一見すると、色が正しい順序に戻っているので問題なく動作しますが、左上に不正なデータ ポイントがあることに注意してください。
dfvis1 <- rbind(dfvis, data.frame(x=NA, y=NA, mygroup="A"))
dfvis1 %>%
ggvis(x= ~x, y= ~y) %>%
layer_points(fill = ~factor(mygroup))
すべての助けに感謝します。