Je veux créer un bardiagramme pour ces données en R (lu à partir d'un fichier CVS):
Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
d'avoir le schéma suivant:
Je suis débutant et je ne sais même pas par où commencer.
Je veux créer un bardiagramme pour ces données en R (lu à partir d'un fichier CVS):
Experiment_Name MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
d'avoir le schéma suivant:
Je suis débutant et je ne sais même pas par où commencer.
Réponses:
Je suppose que vous pouvez importer vos données dans R avec read.table()
ou les fonctions raccourcies read.csv()
. Ensuite, vous pouvez appliquer toutes les fonctions récapitulatives que vous souhaitez, par exemple table
ou mean
, comme ci-dessous:
x <- replicate(4, rnorm(100))
apply(x, 2, mean)
ou
x <- replicate(2, sample(letters[1:2], 100, rep=T))
apply(x, 2, table)
L'idée est de se retrouver avec une matrice ou un tableau pour les valeurs récapitulatives que vous souhaitez afficher.
Pour la sortie graphique, regardez la barplot()
fonction avec l'option beside=TRUE
, par exemple
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")
L' space
argument peut être utilisé pour ajouter un espace supplémentaire entre les barres juxtaposées.
Voici la version ggplot:
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")
Je voulais mettre à jour la réponse de teucer pour refléter reshape2.
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")
Notez que la réponse de teucer produit l'erreur "Erreur dans eval (expr, envir, enclos): objet 'métrique' introuvable" avec reshape2 car reshape2 utilise variable.name au lieu de variable_name.
J'ai également constaté que je devais ajouter stat = "identity" à la fonction geom_bar car sinon cela donnait "Erreur: mappage d'une variable à y et également en utilisant stat =" bin "."