ojiva - plot en r
Obtener un gráfico de histograma de las frecuencias de los factores(resumen) (1)
Tengo un factor con muchos valores diferentes. Si ejecuta un summary(factor)
el resultado es una lista de los diferentes valores y su frecuencia. Al igual que:
A B C D
3 3 1 5
Me gustaría hacer un histograma de los valores de frecuencia, es decir, el eje X contiene las diferentes frecuencias que se producen, el eje Y es la cantidad de factores que tienen esta frecuencia particular. ¿Cuál es la mejor manera de lograr algo así?
editar: gracias a la respuesta a continuación, descubrí que lo que puedo hacer es sacar el factor de las frecuencias de la tabla, obtener eso en una tabla y luego graficar eso también, que se vería (si f
es el factor) :
plot(factor(table(f)))
Actualización a la luz de Q clarificada
set.seed(1)
dat2 <- data.frame(fac = factor(sample(LETTERS, 100, replace = TRUE)))
hist(table(dat2), xlab = "Frequency of Level Occurrence", main = "")
da:
Aquí simplemente aplicamos hist()
directamente al resultado de la table(dat)
. table(dat)
proporciona las frecuencias por nivel del factor e hist()
produce el histograma de estos datos.
Original
Hay varias posibilidades. Tu información:
dat <- data.frame(fac = rep(LETTERS[1:4], times = c(3,3,1,5)))
Aquí hay tres, de la columna uno, de arriba a abajo:
- Los métodos de trazado predeterminados para la
"table"
clase trazan los datos y barras de tipo histograma - Una gráfica de barras, que es probablemente lo que quisiste decir con histograma. Observe la baja relación de tinta a información aquí
- Un diagrama de puntos o gráfico de puntos; muestra la misma información que las otras gráficas, pero usa mucha menos tinta por unidad de información. Privilegiado.
Código para producirlos:
layout(matrix(1:4, ncol = 2))
plot(table(dat), main = "plot method for class /"table/"")
barplot(table(dat), main = "barplot")
tab <- as.numeric(table(dat))
names(tab) <- names(table(dat))
dotchart(tab, main = "dotchart or dotplot")
## or just this
## dotchart(table(dat))
## and ignore the warning
layout(1)
esto produce:
Si solo tiene sus datos en factor
variable (mala elección del nombre por cierto) entonces se puede usar table(factor)
lugar de table(dat)
o table(dat$fac)
en los ejemplos de mi código.
Para completar, el lattice
paquetes es más flexible cuando se trata de producir el diagrama de puntos, ya que podemos obtener la orientación que desea:
require(lattice)
with(dat, dotplot(fac, horizontal = FALSE))
dando:
Y una versión de ggplot2
:
require(ggplot2)
p <- ggplot(data.frame(Freq = tab, fac = names(tab)), aes(fac, Freq)) +
geom_point()
p
dando: