2012-04-04 17 views
15

Ben bu (found here) çok yakın görünüyor ggplot ile bir arsa yapmak istiyorum:Ggplot ile standart dışı çizim türü nasıl oluşturulur?

enter image description here

Ancak, bunun yerine frekans ı koşulları için aralıkları çizmek istiyorum.

enter image description here

My verileri bir başlangıç ​​ve bitiş aralığı için koordinat olarak düzenlenmiştir: İşte 5 koşullarla üretmek isteyen arsa bir taslaktır. Örneğin, koşul 5 için aralığın başlangıcı 30'dur ve aralığın sonu 40'tır (bunu açıklık için grafiğe göre etiketledim). Ben bir grafik üzerinde bu şekilde çizmek istiyorum yaklaşık 100 başlangıç ​​ve bitiş değerlerine sahip

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

: My veri biçiminde bir dosyadan olduğunu. Son arsa sadece iki renk olmalıdır.

GÜNCELLEME:

enter image description here

+1

çok güzel belirlenmiş bir soru! –

cevap

13

Böyle bir şey: İleride

, Justin'in çözüm bu üretir

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

Ama verilere oldukça bağımlı ...

+0

Vay, bu tam olarak aradığım şey. Verilerimi, örneğiniz için doğru veri yapısına eritirken hala sorun yaşıyorum. Verilerimi nasıl 'dat.melt' gibi eriyebilirim? Ben eriyik (id, start, end) denedim, ama bu işe yaramadı. Verilerimin yapısını göstermek için sorumu düzenledim. Teşekkürler. – drbunsen

+5

'melt (yourdata, id.vars = 'id')' size sahip olduğum gibi bir yapı verecektir. Ayrıca, ilk rengi "NA" ile de değiştirebilirsiniz, böylece resminizdeki sadece gölgeli bölüm renklidir. – Justin

+0

Harika, çok teşekkürler. Tam olarak aradığım şey buydu. – drbunsen