2010-06-28 41 views
5

Trước khi trình bày dữ liệu thực tế, tôi muốn tạo một ô giống hệt với dữ liệu có dữ liệu nhưng sau đó không có các điểm dữ liệu trong đó. Điều này giúp tôi giải thích cách diễn giải một cốt truyện như vậy mà không làm xao lãng đối tượng với dữ liệu thực tế sẽ có trong cốt truyện.Lấy màu huyền thoại trong một ggplot rỗng

Vì vậy, trong đoạn mã bên dưới, về cơ bản tôi muốn trao đổi geom_point() với geom_blank(). Không vấn đề gì.

Tuy nhiên, điều này cũng xóa thông tin về màu sắc và kích thước khỏi các truyền thuyết mà mã cốt truyện tạo ra. Có cách nào để lấy lại điều này không?

ggplot(vas, aes(x=time, y=pain, colour=light.color, size=light.intensity)) + 
    #geom_point(na.rm=FALSE) + 
    geom_blank() + 
    facet_wrap(~ppno) + 
    scale_colour_manual(values=cols) + 
    scale_y_continuous(name="VAS Pain (a.u.)") + 
    scale_x_continuous(name="Time (minutes)") 

Cách thích hợp để đưa chỉ báo màu trở lại vào (các) chú giải. Bây giờ, họ chỉ hiển thị (các) giá trị của các mức khác nhau của một tham số (màu hoặc kích thước) nhất định nhưng không phải là phần tử đồ họa thực tế (màu hoặc kích thước của dấu chấm) đi cùng với một mức nhất định.

Trả lời

0

Bạn có thể vẽ hai geom_points() - một với màu nền của bạn không?

ggplot(cars, aes(x=speed, y=dist))+ 
geom_point(aes(col=speed))+ 
geom_point(colour="white")+ 
theme_bw() 
+0

Cảm ơn bạn đã đề xuất! Tôi đã nghĩ về ý tưởng này nhưng đã loại bỏ nó vì tôi thích lưới màu xám mặc định mà ggplot() sử dụng. Vì vậy, rất khó trong trường hợp đó để tìm màu phù hợp làm mờ nền (cũng vì mỗi điểm phải có hai màu, một cho nền và khi nó cắt một đường lưới, cũng có màu trắng). – Paul

+0

Điều đó có ý nghĩa. bạn luôn có thể âm mưu chỉ là truyền thuyết, và một âm mưu trống rỗng. một chút như thế này: http://learnr.wordpress.com/2009/05/26/ggplot2-two-or-more-plots-sharing-the-same-legend/ – Andreas

2

Làm cách nào để ẩn điểm thực tế bên ngoài cửa sổ vẽ đồ thị? Một cái gì đó dọc theo những dòng:

ggplot(cars, aes(x=speed+100, y=dist))+ #move x values to the right 
    geom_point(aes(col=speed))+ 
    scale_x_continuous(at=seq(5,125,by=5), limits=c(0,30)) #set plotting window 
0

Cuối cùng, lấy gợi ý Aniko dọc (mà tôi ban đầu không thể có được để làm việc, do đó loại bỏ, unrightly như vậy) tôi đã đưa ra đoạn mã sau.

vas2 <- vas 
vas2$time <- vas2$time+181 
pp <- p %+% vas2 #p is the above plot assigned to a variable. 
pp + scale_x_continuous(name="Time (minutes)", limits=c(0,180)) 

Vì vậy, nó về chỉ chuyển xung quanh dữ liệu của bạn trên một trục và sau đó không bao gồm một phần của

1

Một cách đơn giản để làm điều này sẽ được sử dụng tùy chọn kích thước:

ggplot(vas, aes(x=time, y=pain, colour=light.color, size=light.intensity)) 
+ geom_point(size=0) 
Các vấn đề liên quan