Come produrre un tipo di trama non standard con ggplot?



remove legend title ggplot2 (1)

Qualcosa come questo:

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()

Ma abbastanza dipendente dai tuoi dati ...

Vorrei fare una trama con ggplot che sembra molto vicino a questo ( trovato qui ):

Tuttavia, invece di frequenza vorrei tracciare intervalli per condizioni. Ecco uno schizzo della trama che voglio produrre con 5 condizioni:

I miei dati sono organizzati come coordinate iniziali e finali per l'intervallo. Ad esempio, per la condizione 5 l'inizio dell'intervallo è 30 e la fine dell'intervallo è 40 (l'ho etichettato sul grafico per chiarezza). I miei dati provengono da un file nel formato:

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

Ho circa 100 valori iniziali e finali che vorrei tracciare in questo modo su un grafico. La trama finale dovrebbe essere solo due colori.

AGGIORNARE:

Per riferimento futuro, la soluzione di Justin produce questo:





ggplot2