2012-11-25 43 views
10

Trong cả hai ô, các điểm trông khác nhau, nhưng tại sao?Kích thước thực sự có ý nghĩa gì trong geom_point?

mya <- data.frame(a=1:100) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a, colour=2, size=seq(0.1,10,0.1))) + 
    geom_point(data=mya, aes(x=a, y=a, colour=1, size=1)) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a, colour=2, size=1)) + 
    geom_point(data=mya, aes(x=a, y=a, colour=1, size=1)) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

?aes_linetype_size_shape giải thích ...

# Size examples 
# Should be specified with a numerical value (in millimetres), 
# or from a variable source 

Nhưng trong mã của tôi có vẻ khác nhau.

Trả lời

13

Có một số điều khó hiểu xảy ra trong mã của bạn. Dường như bạn đang sử dụng chức năng aes theo cách không được dự định. Cũng như các vấn đề size, bạn đang nhận được nhiều truyền thuyết, và tôi nghĩ rằng ggplot là nhầm lẫn về màu sắc.

Chức năng aes được sử dụng để ánh xạ tính thẩm mỹ cho các biến trong dữ liệu, nhưng bạn đang sử dụng nó để đặt tính thẩm mỹ thành hằng số. Ngoài ra, bạn đang sử dụng chức năng aes để đặt hai tính thẩm mỹ riêng biệt. Mặc dù bạn đặt size thành hằng số, ggplot2 không giống như hai ánh xạ kích thước (đường dẫn và điểm) riêng biệt. Hơn nữa, bạn cũng làm như vậy với ánh xạ màu.

sizecolour được đặt thành giá trị không đổi để di chuyển chúng ra ngoài chức năng aes. Ngoài ra, đối với size của đường dẫn trong ô đầu tiên, có thể an toàn hơn khi thêm biến số size vào khung dữ liệu. (Tôi đã sửa đổi dữ liệu của bạn một chút để có thể nhìn thấy cả hai điểm và đường dẫn.) Và như mong đợi, một chú giải trong ô đầu tiên được vẽ.

library(ggplot2) 
mya <- data.frame(a=1:10, size = seq(10, 1, -1)) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a, size=size), colour = 2) + 
    geom_point(data=mya, aes(x=a, y=a), colour = 1, size = 3) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a), colour = 2, size = 1) + 
    geom_point(data=mya, aes(x=a, y=a), colour = 1, size = 3) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

enter image description here

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