Quiero crear un bardiagrama para estos datos en R (leer de un archivo CVS):
Nombre del experimento MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
tener el siguiente diagrama:
Soy principiante y ni siquiera sé cómo empezar.
Quiero crear un bardiagrama para estos datos en R (leer de un archivo CVS):
Nombre del experimento MetricA MetricB Just_X 2 10 Just_X_and_Y 3 20
tener el siguiente diagrama:
Soy principiante y ni siquiera sé cómo empezar.
Respuestas:
Supongo que puede importar sus datos en R con read.table()
o con las read.csv()
funciones abreviadas . Luego puede aplicar cualquier función de resumen que desee, por ejemplo table
omean
, como se muestra a continuación:
x <- replicate(4, rnorm(100))
apply(x, 2, mean)
o
x <- replicate(2, sample(letters[1:2], 100, rep=T))
apply(x, 2, table)
La idea es terminar con una matriz o tabla para los valores de resumen que desea mostrar.
Para la salida gráfica, mire la barplot()
función con la opción beside=TRUE
, por ej.
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")
El space
argumento se puede usar para agregar un espacio adicional entre las barras yuxtapuestas.
Aquí la versión de 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")
Quería actualizar la respuesta de teucer para reflejar 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")
Tenga en cuenta que la respuesta del teucer produce el error "Error en eval (expr, envir, enclos): objeto 'métrico' no encontrado" con reshape2 porque reshape2 usa variable.name en lugar de variable_name.
También descubrí que necesitaba agregar stat = "identity" a la función geom_bar porque, de lo contrario, daba "Error: asignar una variable a y y también usar stat =" bin ".