Ich zeichne eine kategoriale Variable und anstatt die Anzahl für jeden Kategoriewert anzuzeigen.
Ich suche nach einer Möglichkeit, ggplot
den Prozentsatz der Werte in dieser Kategorie anzuzeigen. Natürlich ist es möglich, eine andere Variable mit dem berechneten Prozentsatz zu erstellen und diese zu zeichnen, aber ich muss es mehrere Dutzend Mal tun und hoffe, dies in einem Befehl zu erreichen.
Ich habe mit so etwas experimentiert
qplot(mydataf) +
stat_bin(aes(n = nrow(mydataf), y = ..count../n)) +
scale_y_continuous(formatter = "percent")
aber ich muss es falsch verwenden, da ich Fehler habe.
Um das Setup einfach zu reproduzieren, hier ein vereinfachtes Beispiel:
mydata <- c ("aa", "bb", NULL, "bb", "cc", "aa", "aa", "aa", "ee", NULL, "cc");
mydataf <- factor(mydata);
qplot (mydataf); #this shows the count, I'm looking to see % displayed.
Im wirklichen Fall werde ich wahrscheinlich ggplot
anstelle von verwenden qplot
, aber der richtige Weg, stat_bin zu verwenden, entgeht mir immer noch.
Ich habe auch diese vier Ansätze ausprobiert:
ggplot(mydataf, aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent');
ggplot(mydataf, aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent') + geom_bar();
ggplot(mydataf, aes(x = levels(mydataf), y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent');
ggplot(mydataf, aes(x = levels(mydataf), y = (..count..)/sum(..count..))) +
scale_y_continuous(formatter = 'percent') + geom_bar();
aber alle 4 geben:
Error: ggplot2 doesn't know how to deal with data of class factor
Der gleiche Fehler tritt für den einfachen Fall von auf
ggplot (data=mydataf, aes(levels(mydataf))) +
geom_bar()
Es geht also eindeutig darum, wie ggplot
mit einem einzelnen Vektor interagiert wird. Ich kratzte mir am Kopf und googelte nach diesem Fehler, was zu einem einzigen Ergebnis führte .