2011-05-06 13 views
7

Buenos días, deseo producir un gráfico usando ggplot2, pero no usando su clasificación predeterminada de la variable categórica (alfabéticamente, en guión: letras), pero usando el valor asociado de una variable continua (en script: número).Ordenamiento de variables categóricas en ggplot

Aquí es un script de ejemplo:

library(ggplot2) 
trial<-data.frame(letters=letters, numbers=runif(n=26,min=1,max=26)) 
trial<-trial[sample(1:26,26),] 
trial.plot<-qplot(x=numbers, y=letters, data=trial) 
trial.plot 
trial<-trial[order(trial$numbers),] 
trial.plot<-qplot(x=numbers, y=letters, data=trial) 
trial.plot 
trial.plot+stat_sort(variable=numbers) 

La última línea no funciona.

Respuesta

8

Estoy bastante seguro de que stat_sort no existe, por lo que no es sorprendente que no funcione como usted cree que debería. Afortunadamente, está la función reorder() que reordena el nivel de una variable categórica según los valores de una segunda variable. Creo que esto debería hacer lo que quiera:

trial.plot <- qplot(x = numbers, y = reorder(letters, numbers), data = trial) 
trial.plot 

enter image description here

+1

Personalmente, me gusta ordenar mis datos antes de la mano. Recuerde que no es un factor ordenado, es un factor en el orden correcto. trial <- transform (trial, letters = reorder (letters, numbers). Y solo para cambiar los factores, use relevel() –

+0

Ambos enfoques son increíbles. Gracias. –

0

Si usted podría ser más específico acerca de cómo desea que se vea, creo que la comunidad podría hacer mejoras en mi respuesta, sin tener en cuenta es esto lo usted está buscando:

qplot(numbers, reorder(letters, numbers), data=trial) 
Cuestiones relacionadas