2016-04-19 21 views
5

cho đến bây giờ tôi không thể tìm thấy một câu trả lời thích hợp, đây là câu hỏi ngắn của tôi về ggplot2 trong R:R ggplot - thêm tất cả các điểm dữ liệu cho tất cả các khía cạnh

data(mtcars) 
ggplot(data=mtcars, aes(x=mpg, y=wt, fill=factor(cyl))) + 
scale_fill_manual(values=c("red","orange","blue"))+ 
geom_point(size=2, pch=21)+ 
facet_grid(.~cyl) 

enter image description here

Đây là tất cả tiền phạt , bây giờ tôi muốn tất cả các điểm dữ liệu (bất kể số lượng cyl có) trong mọi khía cạnh (ví dụ với một màu xám mịn bên dưới các điểm)?

Cảm ơn, Michael

+4

có thể trùng lặp của [âm mưu toàn bộ dữ liệu trong mỗi khía cạnh sử dụng khía cạnh \ _wrap và ggplot2] (http://stackoverflow.com/questions/35550411/plotting-the-whole- data-within-each-facet-sử dụng-facet-wrap-và-ggplot2) – beetroot

Trả lời

5

Sử dụng liên kết đưa ra bởi @beetroot, tôi đã có thể làm một cái gì đó như thế này:

g1 <- ggplot(data=mtcars, aes(x=mpg, y=wt)) + 
    geom_point(data=mtcars[, c("mpg", "wt")], aes(x=mpg, y=wt), colour="grey") + 
    geom_point(size=2, pch=21, aes(fill=factor(cyl))) + 
    scale_fill_manual(values=c("red","orange","blue")) + 
    facet_wrap(~cyl) 

này tạo ra cốt truyện: enter image description here

Hy vọng điều này sẽ giúp bạn .

+0

Cảm ơn. Tôi sẽ xây dựng liên kết được đề xuất. Cảm ơn bạn đã gợi ý của bạn, nhưng ở đây tôi nhận được: "Lỗi: Thẩm mỹ phải là độ dài 1 hoặc giống như dữ liệu (60): x, y, điền" khi tôi áp dụng nó theo cách này cho dữ liệu cụ thể của tôi (nhưng dữ liệu cấu trúc là như nhau). –

+0

@mod_che: Mã mà tôi đã viết, đây có phải là lỗi cho bạn không? Đối với tôi, nó hoạt động tốt. –

+0

Nó hoạt động ngay bây giờ, cảm ơn! –

3

Đây là một sự đơn giản hóa nhẹ giúp cuộc sống dễ dàng hơn một chút. Điều duy nhất bạn cần làm là xóa biến faceting khỏi dữ liệu được cung cấp cho lớp nền geom_point().

library(tidyverse) 
ggplot(data=mtcars, aes(x=mpg, y=wt)) + 
    geom_point(data=select(mtcars,-cyl), colour="grey") + 
    geom_point(size=2, pch=21, aes(fill=factor(cyl))) + 
    scale_fill_manual(values=c("red","orange","blue")) + 
    facet_wrap(~cyl) 

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