Bạn có thể thực hiện điều này khá dễ dàng bằng cách lùi lại từ hàm bao hàm 'qplot' và sử dụng trực tiếp chức năng 'ggplot' và hình học.
ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point(aes(colour=factor(cyl))) +
geom_smooth(method="lm")
Bước 1: Thiết lập ban đầu 'ggplot' Cài đặt của bạn. Đây là các cài đặt mà bạn muốn mặc định cho các hàm hình học.
ggplot(mtcars, aes(x=wt, y=mpg))
Trong trường hợp này, chúng tôi đang sử dụng dữ liệu 'mtcars' cho tất cả các hình học có 'wt' được gán cho trục x và 'mpg' được gán cho trục y. Bằng cách xác định những điều này ngay từ đầu, chúng tôi sẽ giảm bớt rủi ro gây rối điều gì đó khi sao chép vào các chức năng hình học.
Bước 2: Vẽ hình dạng điểm, sử dụng các thừa số của 'cyl' để tô màu các điểm. Đây là chức năng 'qplot' ban đầu đang làm, nhưng chúng tôi chỉ định rõ hơn một chút.
geom_point(aes(colour=factor(cyl)))
Bước 3: Vẽ mô hình tuyến tính được làm phẳng. Đây là chính xác những gì OP đã viết trước đây, nhưng bây giờ thẩm mỹ của màu không còn là một phần của mặc định, mô hình rút ra như dự định.
geom_smooth(method="lm")
Ghim tất cả cùng với +
et voila!
Để tham khảo: Bạn có thể chỉ là một cách dễ dàng làm được điều này bằng cách rõ ràng trong mỗi lớp, như vậy:
ggplot() +
geom_point(data=mtcars, aes(x=wt, y=mpg, colour=factor(cyl))) +
geom_smooth(data=mtcars, method="lm", aes(x=wt, y=mpg))
Cảm ơn bạn đã trả lời. Tôi sử dụng hàm ggplot() thay vì qplot. Chỉ có ví dụ trên trang web được liên kết đề cập đến nền tảng cho câu hỏi của tôi khá tốt. Điều khiến tôi khó hiểu ở đây là các lớp khác nhau mà bây giờ tôi đã hiểu được – moadeep
Đôi khi tôi gửi câu trả lời, xem ai đó đã viết câu trả lời y hệt và nghĩ, "Có lẽ tôi nên đợi lâu hơn một chút trước khi trả lời ..." – Dinre
Hoặc nhanh hơn :-) – alexwhan