2013-01-07 34 views
5

Giả sử rằng tôi thích geom_point để sử dụng vòng kết nối (pch=1) thay vì dấu chấm (pch=16) theo mặc định. Bạn có thể thay đổi hình dạng của các điểm đánh dấu bằng cách chuyển một đối số shape tới geom_point, ví dụ:Làm thế nào để thay đổi tính thẩm mỹ mặc định trong ggplot?

ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point(shape=1) 
ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point(shape=16) 

nhưng tôi không thể tìm ra cách thay đổi hành vi mặc định.

+2

@AR tôi thực sự không nghĩ rằng đó là liên quan đến câu hỏi này. – joran

Trả lời

12

Geom (và stat) mặc định có thể được cập nhật trực tiếp:

update_geom_defaults("point", list(shape = 1)) 
ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point() 

enter image description here

7

Một cách để làm điều đó (mặc dù tôi không thực sự thích nó) là tạo hàm geom_point của riêng bạn. Ví dụ.

geom_point2 <- function(...) geom_point(shape = 1, ...) 

Sau đó, chỉ cần sử dụng như bình thường:

ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point2() 

Hoặc nếu bạn muốn, bạn có thể ghi đè lên các chức năng geom_point():

geom_point <- function(...) { 
    ggplot2::geom_point(shape = 1, ...) 
} 

Điều này có thể được xem xét thực tế xấu nhưng nó hoạt động. Sau đó, bạn không cần phải thay đổi cách bạn cốt truyện:

ggplot(diamonds, aes(depth, carat, colour=cut)) + geom_point() 
Các vấn đề liên quan