gpt4 book ai didi

r - 将变量作为参数传递给 plot_ly 函数

转载 作者:行者123 更新时间:2023-12-01 09:09:18 24 4
gpt4 key购买 nike

我想创建一个函数,根据传递给它的参数创建不同类型的绘图。如果我创建以下数据

library(plotly)
#### test data
lead <- rep("Fred Smith", 30)
lead <- append(lead, rep("Terry Jones", 30))
lead <- append(lead, rep("Henry Sarduci", 30))
proj_date <- seq(as.Date('2017-11-01'), as.Date('2017-11-30'), by = 'day')
proj_date <- append(proj_date, rep(proj_date, 2))
set.seed(1237)
actHrs <- runif(90, 1, 100)
cummActHrs <- cumsum(actHrs)
forHrs <- runif(90, 1, 100)
cummForHrs <- cumsum(forHrs)
df <- data.frame(Lead = lead, date_seq = proj_date,
cActHrs = cummActHrs,
cForHrs = cummForHrs)

我可以使用以下方法绘制它:
plot_ly(data = df, x = ~date_seq, y = ~cActHrs, split = ~Lead)

如果我制作了一个 makePlot 函数,如下所示,我将如何让它做这样的事情:
makePlot <- function(plot_data = df, x_var = date_seq, y_var, split_var) {
plot <- plot_ly(data = df, x = ~x_var, y = ~y_var, split = ~split_var)

return(plot)
}

?

有没有我可以用 x_var、y_var 和 split_var 包装的函数,以便 plotly 将它们识别为 x、y 和 split 参数?

最佳答案

最终想出办法解决这个问题,并希望这个小小的后续行动能够揭开这些类型任务的一些神秘面纱。尽管这个问题侧重于绘图,但重要的是首先要了解各种 R 包(例如 dplyr 和 plotly)中的函数如何计算表达式以及如何操纵这些表达式的计算方式。建立这种理解的一个很好的引用是 Hadley 的关于在 dplyr herehere 中编程的文章。
一旦掌握了这一点,事情就会变得非常简单。诀窍是像调用 dplyr 函数一样简单地传递变量参数,并确保在绘图函数中引用这些参数。对于上述问题,此功能对我有用:

makePlot <- function(plot_data = df, x_var, y_var, split_var,
type_var="scatter",
mode_var="lines+markers") {
quo_x <- enquo(x_var)
quo_y <- enquo(y_var)
quo_split <- enquo(split_var)

# print(c(quo_x, quo_y, quo_split))

plot <- plot_ly(data = plot_data, x = quo_x, y = quo_y, split = quo_split,
type=type_var, mode=mode_var)

return(plot)
}

# using df created in question, pass col's as args like dplyr functions
p1 <- makePlot2(df, date_seq, cActHrs, Lead)
p2 <- makePlot2(df, date_seq, cForHrs, Lead)

关于r - 将变量作为参数传递给 plot_ly 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47760169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com