Để thuận tiện cho tôi, tôi muốn viết một hàm để thêm một ô và một ô phân tán vào một ô đã tồn tại. Tôi đã xác định:Thêm dòng với các điểm vào một ô trong ggplot2
addlinetoplot <- function(dataset, varx, vary)
{
p <- geom_line(data=dataset, aes_string(x=varx, y=vary)) +
geom_point(data=dataset, aes_string(x=varx, y=vary))
p
}
Chức năng trên không hoạt động. Nó hoạt động nếu tôi xóa các dấu hiệu +
và phần geom_point()
. Ở trên không có tác dụng bởi vì vì một lý do nào đó, người ta không thể thêm hai cái đó. Ví dụ sau minh họa vấn đề.
Sau đó, tôi đã cố gắng:
df1 <- data.frame(c1 = c(1:10), c2 = c(1:10))
c1 <- c(1:10)
csq <- c1^2
df2 <- data.frame(c1 = c(1:10), csq)
pltbase <- ggplot() + geom_line(df1, aes(x="c1", y="c2"))
# This does not work.
pltbase + addlinetoplot(dataset=df2, varx = "c1", vary = "csq")
Tôi nhận thấy vấn đề là với tuyên bố:
addthistotheplot <- geom_line(data=df2, aes_string(x="c1", y="csq")) +
geom_point(data=df2, aes_string(x="c1", y="csq"))
Đang cố gắng để xác định các tuyên bố trên ném một lỗi: đối số không phải số để điều hành nhị phân.
Làm thế nào tôi có thể xác định addlinetoplot()
chức năng để tôi có thể thực hiện:
pltbase + addlinetoplot(dataset=df2, varx = "c1", vary = "csq")
làm việc. Một cách là tách biệt geom_line và geom_point và có định nghĩa chức năng khác nhau cho mỗi. Có cách nào để làm điều đó trong cùng một chức năng?
Cảm ơn!