2011-12-21 25 views
12

Tôi đang cố vẽ đồ thị ô phân tán lớn thay đổi theo một số lượng lớn các tham số.Sửa đổi hình dạng cho một tập hợp con của các điểm bằng ggplot2

Dưới đây là cốt truyện bắt đầu của tôi:

p <- ggplot(mtcars, aes(wt, mpg, shape=cyl, colour=gear, size=carb)) + 
     geom_point() 

Sample plot with multiple variables

Sử dụng mtcars bộ dữ liệu, tôi chỉ đơn giản bao gồm hình dạng khác nhau, màu sắc và kích cỡ. Bây giờ những gì tôi muốn thêm vào đây là một số dấu hiệu phân biệt xung quanh tất cả các điểm với carb == 8. Ví dụ, thêm vào một vòng tròn lớn màu đen xung quanh những điểm này.

Làm

p + geom_point() + geom_point(colour="black", shape=1, size=5) 

là đóng ở chỗ nó được các vòng tròn như tôi muốn, nhưng tất cả các điểm có được vòng tròn, tôi muốn thay vì hạn chế này để chỉ một số điểm.

Tôi rất cảm kích mọi đề xuất cho vấn đề này.

Trả lời

21

Thay vì ban đầu đặt các biến của bạn trong hàm ggplot, hãy cố gắng ánh xạ các biến riêng lẻ cho mỗi lớp bạn thêm.

p <- ggplot(data = mtcars)+ 
geom_point(aes(wt, mpg, shape=as.factor(cyl), colour=gear, size=carb))+ 
geom_point(aes(wt[carb==8], mpg[carb==8]), colour="black", shape=1, size=7) 

img

+5

Tốt. Cá nhân, tôi có xu hướng chuyển tập hợp con mong muốn của dữ liệu gốc sang geom, như 'geom_point (dữ liệu = tập hợp con (mtcars, carb == 8), aes (...))', và cho mã OP có khả năng nó có lẽ đáng để chỉ ra. – joran

+0

Tuyệt vời! Đó là _exactly_ những gì tôi đang tìm kiếm và nó cực kỳ đơn giản. Cảm ơn! – fozziethebeat

+1

Là truy vấn con, Làm cách nào để chỉnh sửa chú thích để biểu thị các vòng tròn màu đen xung quanh carb = 8? – fozziethebeat

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