2012-04-04 22 views
15

Tôi muốn thực hiện một âm mưu với ggplot trông rất gần này (found here):Làm thế nào để tạo ra loại lô không chuẩn với ggplot?

enter image description here

Tuy nhiên, thay vì tần số Tôi muốn vẽ dãy cho điều kiện. Dưới đây là một phác thảo của cốt truyện tôi muốn sản xuất với 5 điều kiện:

enter image description here

Dữ liệu của tôi được sắp xếp như một sự khởi đầu và kết thúc phối hợp cho phạm vi. Ví dụ, đối với điều kiện 5, bắt đầu phạm vi là 30 và kết thúc phạm vi là 40 (Tôi đã gắn nhãn điều này về biểu đồ để rõ ràng). Dữ liệu của tôi là từ một tệp có dạng:

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

Tôi có khoảng 100 giá trị bắt đầu và kết thúc mà tôi muốn vẽ theo cách này trên một biểu đồ. Cốt truyện cuối cùng chỉ nên có hai màu.

UPDATE:

Để tham khảo trong tương lai, giải pháp của Justin sản xuất này:

enter image description here

+1

câu hỏi được chỉ định rất độc đáo! –

Trả lời

13

Something như thế này:

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

Nhưng khá phụ thuộc vào dữ liệu của bạn ...

+0

Ồ, đây chính là điều tôi đang tìm kiếm. Tôi vẫn gặp sự cố khi làm nóng dữ liệu của tôi vào cấu trúc dữ liệu chính xác cho ví dụ của bạn. Làm thế nào tôi có thể làm tan chảy dữ liệu của tôi như 'dat.melt'? Tôi đã cố gắng 'tan chảy (id, bắt đầu, kết thúc)', nhưng điều đó không hiệu quả. Tôi đã chỉnh sửa câu hỏi của mình để hiển thị cấu trúc dữ liệu của tôi. Cảm ơn. – drbunsen

+5

'melt (yourdata, id.vars = 'id')' sẽ cung cấp cho bạn một cấu trúc giống như những gì tôi có. Bạn cũng có thể thay thế màu đầu tiên bằng 'NA' để chỉ có phần tô bóng trong ảnh của bạn được tô màu. – Justin

+0

Tuyệt vời, cảm ơn rất nhiều. Đây chính xác là những gì tôi đang tìm kiếm. – drbunsen

Các vấn đề liên quan