Trong sách của Hadley Wickham ggplot2 trong chương 10.3, anh ta ám chỉ để tạo ra các chức năng cốt truyện. Tôi muốn tạo ra nhiều ô tương tự sử dụng faceting, nhưng tôi không thể tham chiếu đến một cột. Nếu tất cả các tài liệu tham khảo của tôi là trong thẩm mỹ sau đó tôi có thể sử dụng aes_string và tất cả mọi thứ hoạt động. Facet_wrap dường như không có sự tương tự.Thực hiện các chức năng cốt truyện với ggplot và aes_string
library(ggplot2)
data(iris)
Đây là cốt truyện tôi muốn thực hiện chức năng.
pl.flower1 <- ggplot(data=iris,
aes_string(x='Sepal.Length', y='Sepal.Width', color='Petal.Length')) +
geom_point() +facet_wrap(~Species)
này hoạt động nếu tôi không khía cạnh.
flowerPlot <- function(dat, sl, sw, pl, sp){
ggplot(data=dat, aes_string(x=sl, y=sw, color=pl)) + geom_point()
}
pl.flower2 <- flowerPlot(iris, sl='Sepal.Length', sw='Sepal.Width', pl='Petal.Length')
Điều gì sẽ "sp" là hai dòng bên dưới? Một công thức, một chuỗi? Có lẽ toàn bộ aproach là sai.
flowerPlotWrap <- function(dat, sl, sw, pl, sp){
ggplot(data=dat, aes_string(x=sl, y=sw, color=pl)) + geom_point() +facet_wrap(sp)
}
pl.flower3 <- flowerPlotWrap(iris, sl='Sepal.Length', sw='Sepal.Width', pl='Petal.Length', sp= ?????)
Ngoài câu trả lời, tôi rất thích con trỏ về cách mọi người tiếp cận vấn đề này?
Đối với cách tiếp cận giải quyết câu hỏi này, tôi có thể kiểm tra [StackOverflow] (http://stackoverflow.com/questions/8043247/writing-r-functions-with-optional-arguments) trước tiên. :) – joran
Cũng được hỏi tại đây: http://stackoverflow.com/questions/11028353/passing-string-variable-facet-wrap-in-ggplot-using-r –