Ich möchte ein Bardiagramm für diese Daten in R erstellen (aus einer CVS-Datei lesen):
Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
um das folgende Diagramm zu haben:
Ich bin Anfänger und weiß nicht einmal, wie ich anfangen soll.
Ich möchte ein Bardiagramm für diese Daten in R erstellen (aus einer CVS-Datei lesen):
Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
um das folgende Diagramm zu haben:
Ich bin Anfänger und weiß nicht einmal, wie ich anfangen soll.
Antworten:
Ich gehe davon aus, dass Sie Ihre Daten in R mit read.table()
oder mit den Kurzhandfunktionen importieren read.csv()
können. Anschließend können Sie beliebige Zusammenfassungsfunktionen anwenden, z. B. table
oder mean
wie folgt:
x <- replicate(4, rnorm(100))
apply(x, 2, mean)
oder
x <- replicate(2, sample(letters[1:2], 100, rep=T))
apply(x, 2, table)
Die Idee ist, eine Matrix oder Tabelle für die Zusammenfassungswerte zu erhalten, die Sie anzeigen möchten.
Schauen Sie sich für die grafische Ausgabe die barplot()
Funktion mit der Option an beside=TRUE
, z
barplot(matrix(c(5,3,8,9),nr=2), beside=T,
col=c("aquamarine3","coral"),
names.arg=LETTERS[1:2])
legend("topleft", c("A","B"), pch=15,
col=c("aquamarine3","coral"),
bty="n")
Das space
Argument kann verwendet werden, um einen zusätzlichen Abstand zwischen nebeneinander angeordneten Balken hinzuzufügen.
Hier ggplot Version:
library(ggplot2)
df = melt(data.frame(A=c(2, 10), B=c(3, 20),
experiment=c("X", "X & Y")),
variable_name="metric")
ggplot(df, aes(experiment, value, fill=metric)) +
geom_bar(position="dodge")
Ich wollte die Antwort von teucer aktualisieren, um reshape2 widerzuspiegeln.
library(ggplot2)
library(reshape2)
df = melt(data.frame(A=c(2, 10), B=c(3, 20),
experiment=c("X", "X & Y")),
variable.name="metric")
ggplot(df, aes(experiment, value, fill=metric)) +
geom_bar(position="dodge",stat="identity")
Beachten Sie, dass die Antwort von teucer den Fehler "Fehler in eval (Ausdruck, Umgebung, Beilage): Objekt 'Metrik' nicht gefunden" mit reshape2 erzeugt, da reshape2 variable.name anstelle von variable_name verwendet.
Ich fand auch, dass ich stat = "identity" zur Funktion geom_bar hinzufügen musste, da es sonst "Fehler: Zuordnen einer Variablen zu y und auch Verwenden von stat =" bin "gab.