2016-03-01 6 views
7

私はDavid Robinsonが彼のgganimateパッケージをリリースしてから、自分自身で遊びたいと思っていたので、twitterに登場するさまざまなggplotアニメーションで羨望と感銘を受けました。 geom_barを使用するときにgganimateに関する問題が発生しています。うまくいけば、次の例は問題を示していることを願っていますgeom_barのgganimateの問題?

まず、再現例えば、いくつかのデータを生成します。

df <- data.frame(x = c(1, 2, 1, 2), 
       y = c(1, 2, 3, 4), 
       z = c("A", "A", "B", "B")) 

が、私はzによってファセット普通ggplotをプロットすることは有用であろうと思った何をしようとしている証明するために。私はこれらの2つのプロットの間を循環するgifを生成するためにgganimateを取得しようとしています。

ggplot(df, aes(x = x, y = y)) + 
    geom_bar(stat = "Identity") + 
    facet_grid(~z) 

facetted_barchart

しかし、私はBのためgganimateプロットを使用するときに奇妙な振る舞い。 2番目のフレームでは、バーは原点から始めるのではなく、最初のフレームのバーが終了する値で開始します。まるでそれが積み重なった棒グラフであるかのように。ちなみに

p <- ggplot(df, aes(x = x, y = y, frame = z)) + 
    geom_bar(stat = "Identity") 
gg_animate(p) 

bars_animation

geom_pointすべてと同じプロットをしようとして期待通りに動作します。

q <- ggplot(df, aes(x = x, y = y, frame = z)) + 
    geom_point() 
gg_animate(q) 

私はいくつかの画像を投稿しようとしましたが、明らかに十分な評判がないので、それがなければ理にかなっていると思います。これはバグですか、何か不足していますか?事前に

おかげで、

トーマス

答えて

10

理由はファセットなしで、バーが積層されていることです。 position = "identity"を使用します。

p <- ggplot(df, aes(x = x, y = y, frame = z)) + 
    geom_bar(stat = "Identity", position = "identity") 
gg_animate(p) 

enter image description here

このような状況では混乱を避けるために、それは(あなたがusing`ているGEOMに応じて、またはcolourfillframeを置き換えるためにはるかに便利です。

p <- ggplot(df, aes(x = x, y = y, fill = z)) + 
    geom_bar(stat = "Identity") 
p 

enter image description here

2つのプロットあなたはframefillを交換する際に、描かれている時に色のいずれかを描画専用のに正確に対応します。

+0

ありがとうございます! – tecb1234

関連する問題