2017-12-17 7 views
2

Ich versuche mit ggplot2 ein animiertes Tortenbild zu erstellen.Animierte Handlung mit Polarkoordinaten

Meine Daten ist ein bisschen kompliziert, aber hier ist ein vereinfachtes Beispiel:

ex = data.frame(cat=c("cat1","cat2","cat1","cat2","cat1","cat2"), f = c(70,30,60,40,50,50), t=c(1,1,2,2,3,3)) 
ex$t = factor(ex$t) 

p = ggplot(ex, aes(x="", y=f, fill=cat, frame=t))+ 
    geom_bar(width = 1, stat = "identity") + 
    coord_polar("y", start=0) 

gganimate(p, "ex.gif", interval=1) 

Wenn ich p angezeigt werden, wie es scheint ok: simple png

Aber die gif ist nicht ok: gif

Irgendeine Idee, wie man diesen Fehler löst?

+0

Werfen Sie einen Blick auf [diese] (https://stackoverflow.com/questions/41453746/how-to-get-complete-rather-than-partial -Pie-Diagramme-mit-Gganimate) Post. Ich hoffe es hilft. – markus

Antwort

1

Die generierte .gif sieht für mich korrekt aus. Jeder Frame wird mit separaten Daten generiert. Vielleicht suchen Sie nach einem Tortendiagramm nach und nach. Sie sollten cumulative = TRUE verwenden, um Frames kumulativ zu erstellen.

Der Code sollte geändert werden:

p = ggplot(ex, aes(x="", y=f, fill=cat, frame=t, cumulative = TRUE))+ 
    geom_bar(width = 1, stat = "identity") + 
    coord_polar("y", start=0) 
+0

Das PNG-Bild sollte eines der Gif-Frames sein. Der Kuchen sollte voll sein, weil alle Zahlen 100 ergeben. Ist es nicht? – Pad

+0

Der vollständige Kuchen zeigt 300. Jede Beobachtung addiert sich zu 300. Wenn kumulativ TRUE ist, ist der Kuchen im dritten Rahmen voll. – MKR