[英]How to automatically include labels and data in my scatterplot function in R?
我現在要回去練習制作函數,我想出了這個超級基本的散點圖,我仍在嘗試定制一點:
#### Quick Scatter ####
library(tidyverse)
quick.scatter <- function(data,
x.var,
y.var){
d <- data %>%
ggplot(aes(x=x.var,
y=y.var))+
geom_point(alpha=.4)+
geom_smooth(method = "lm",
color="red")+
labs(title = "Scatterplot of Data",
x="Predictor",
y="Outcome Variable")+
theme_bw()
return(d)
}
例如,如果你插入iris
數據集,它應該會給你一個快速的分散:
quick.scatter(iris,
x.var = iris$Sepal.Width,
y.var = iris$Sepal.Length)
我想用這個來改進一些事情。 首先,我想在這里擺脫“數據”參數,這樣我就可以插入我的值,例如:
quick.scatter(df$x,df$y)
其次,我想知道是否有一種簡單的方法可以根據包含的變量自動命名 x 和 y 軸。 因此,如果我使用上面的代碼,我希望它自動具有以下標簽:
像這樣的東西適用於您的用例嗎?
library(tidyverse)
quick.scatter <- function(x, y){
x_name <- gsub(".*\\$", "", deparse(substitute(x)))
y_name <- gsub(".*\\$", "", deparse(substitute(y)))
data <- data.frame(x_name = x,
y_name = y)
d <- data %>%
ggplot(aes(x=x_name,
y=y_name))+
geom_point(alpha=.4)+
geom_smooth(method = "lm",
color="red")+
labs(title = "Scatterplot of Data",
x=x_name,
y=y_name)+
theme_bw()
print(d)
}
quick.scatter(iris$Petal.Length, iris$Sepal.Length)
#> `geom_smooth()` using formula 'y ~ x'
由代表 package (v2.0.1) 於 2022 年 8 月 16 日創建
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.