簡體   English   中英

如何在 R 的散點圖中自動包含標簽和數據?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM