In R habe ich einen data.frame wie der oben auf dem Bild.Erzeuge Barplot von data.frame
Gibt es eine Möglichkeit, ein Barplot wie das unten auf dem Bild zu erstellen?
In R habe ich einen data.frame wie der oben auf dem Bild.Erzeuge Barplot von data.frame
Gibt es eine Möglichkeit, ein Barplot wie das unten auf dem Bild zu erstellen?
Mit Basis Grafiken Sie dies einfach tun:
mydf <- data.frame(X1=c(A=2, B=4, C=1), X2=c(3,2,NA), X3=c(4,1,NA))
barplot(t(as.matrix(mydf)), beside=TRUE)
Mit weiteren Anrufe axis
kann die Kennzeichnung mehr geben wie in der Frage.
Dies sollte die akzeptierte Antwort sein - warum zwei Bibliotheken verwenden, um so eine einfache Aufgabe zu erledigen? –
weil die Konvertierung in eine Matrix und dann eine Tabelle viel Aufwand verursachen kann, wenn Sie ein großes df haben? – wordsforthewise
@wordsforthewise, wenn der df so groß ist, dass dieser Overhead sogar bemerkbar ist (geschweige denn ein Problem), dann ist ein Barplot wahrscheinlich sowieso nicht die beste Visualisierung davon. –
Unter der Annahme, dass Sie nicht ascii Ausgang wollen, hier ist eine Lösung mit ggplot2
:
# load/generate your data
mydf <- data.frame(X1 = c(2,4,1), X2 = c(3,2,NA), x3 = c(4,1,NA), row.names=c("A","B","C"))
mydf$Category <- row.names(mydf)
# bring your data to long format as needed by ggplot
library(reshape2)
mydf.molten <- melt(mydf, value.name="Count", variable.name="Variable", na.rm=TRUE)
# plot and facet by categories
library(ggplot2)
qplot(data=mydf.molten, x = Variable, y = Count, geom="bar", stat = "identity") + facet_wrap("Category")
Weitere Details Ich würde empfehlen, die zu konsultieren ggplot2 manual, vor allem das Kapitel über geom_bar
und facet_wrap
.
Arbeitete für mich! Vielen Dank! – ElPatzo
hat diesen Fehler mit Ihrem Code: '> mydf.molten <- schmelzen (mydf, value.name =" Anzahl ", variable.name =" Variable ", na.rm = TRUE) Verwenden Kategorie als ID-Variablen > qplot (Daten = mydf.molten, x = Variable, y = Anzahl, geom = "bar", stat = "Identität") + facet_wrap ("Kategorie") Fehler: stat_count() darf nicht mit ay aesthetic verwendet werden. Zusätzlich: Warnmeldung: 'stat' ist veraltet' –
@Mona Jalal; 'ggplot2' hat sich seit 2013 geändert, besonders als es von ver aktualisiert wurde. 1.xxx bis 2.xxx. – cuttlefish44
Wenn Sie eine Ascii-Ausgabe meinen, versuchen Sie das 'txtplot'-Paket. –
Entschuldigung, dies war nur ein Beispiel;) Ich möchte eine Handlung wie die mit der Barplot-Funktion haben – ElPatzo
Wahrscheinlich möchten Sie den Titel Ihrer Frage ändern? Sie möchten eigentlich ein Barplot aus einem data.frame erstellen und nicht umgekehrt. – Beasterfield