2012-04-04 9 views
15

me gustaría hacer una gráfica con ggplot que se ve muy cerca de este (found here):¿Cómo se produce el tipo de diagrama no estándar con ggplot?

enter image description here

Sin embargo, en lugar de la frecuencia quisiera trazar rangos de condiciones. Aquí es un croquis de la parcela quiero producir con 5 condiciones:

enter image description here

Mis datos está dispuesto como un inicio y el final de coordenadas para la gama. Por ejemplo, para la condición 5, el inicio del rango es 30 y el final del rango es 40 (he etiquetado esto sobre el gráfico para mayor claridad). Mis datos son de un archivo en la forma:

id  start end 
1  20  35 
2  60  75  
3  10  30 
4  80  90 
5  30  40 

Tengo cerca de 100 valores inicial y final que me gustaría para trazar de esta manera en un gráfico. La trama final debe ser de solo dos colores.

ACTUALIZACIÓN:

Para futuras consultas, la solución de Justin produce esto:

enter image description here

+1

pregunta muy bien especificada! –

Respuesta

13

Algo como esto:

library(ggplot2) 
library(reshape) 
dat <- data.frame(lets=letters[1:5], low=1:5, mid=3:7, high=10:14) 
dat.melt <- melt(dat, id.vars='lets') 


ggplot(dat.melt, aes(x=lets, y=value, fill=variable)) + 
    geom_bar(stat='identity') + 
    scale_fill_manual(breaks=c('low','mid','high'), values=c('blue','red','blue')) + 
    coord_flip() 

Pero bastante dependiente de los datos ...

+0

Guau, esto es exactamente lo que estoy buscando. Todavía tengo problemas para fusionar mis datos en la estructura de datos correcta para su ejemplo. ¿Cómo puedo fusionar mis datos como 'dat.melt'? Intenté 'melt (id, start, end)', pero eso no funcionó. He editado mi pregunta para mostrar la estructura de mis datos. Gracias. – drbunsen

+5

'melt (yourdata, id.vars = 'id')' le dará una estructura como la que tengo. También puede reemplazar el primer color con 'NA' para que solo la sección sombreada de la imagen esté coloreada. – Justin

+0

Impresionante, muchas gracias. Esto era exactamente lo que estaba buscando. – drbunsen

Cuestiones relacionadas