【发布时间】:2019-08-09 22:14:57
【问题描述】:
我已经定义了一个函数,它接受一个 data.frame 并返回一个绘图,稍后我将其传递给 plotly。我需要这个函数是灵活的,它会被多次调用(这就是我写一个函数的原因)。一个简单的可重现示例:
a <- data.frame(x = 1:3, y = c(2, 6, 3))
library(ggplot2)
library(plotly)
plotTrend <- function(x){
var1 <- names(x)[1]
var2 <- names(x)[2]
p <- ggplot(a, aes(x = get(var1), y = get(var2)))+
geom_point()+
geom_smooth(method = "lm")
return(p)
}
当然,我可以在a 上致电plotTrend,我会得到我期待的情节。
但是当我在上面调用ggplotly 时,工具提示显示的是一个丑陋的get(var1),而不是列名(本例中为“x”)。
plotTrend(a)
ggplotly()
我知道我可以在函数内为 data.frame 创建一个文本列,然后调用 ggplotly(tooltip = "text")(我在 SO 中阅读了很多关于那个的问题),但我想知道是否有另一种方法来获得正确的工具提示中的名称,可以通过修改函数或使用ggplotly 中的一些特殊参数。
我的预期输出是:
- 有情节的情节
- 准确读取值且名称为“x”和“y”的工具提示
【问题讨论】: