R Plotly:如何将 config() 与 plotly_build() 结合使用?
R Plotly: How to use config() in conjunction with plotly_build()?
运行 plotly_build(p)
之前的代码和正确的绘图结果。
可重现代码
library(plotly)
#data
df1 <- data.frame(cond = factor( rep(c("A","B"), each=200) ),
rating = c(rnorm(200),rnorm(200, mean=.8)))
df2 <- data.frame(x=c(.5,1),cond=factor(c("A","B")))
#plot
gg <- ggplot(data=df1, aes(x=rating, fill=cond)) +
geom_vline(aes(xintercept=mean(rating, na.rm=T))
, color="red", linetype="dashed", size=1, name="average") +
geom_vline(aes(xintercept=median(rating, na.rm=T))
, color="blue", linetype="dashed", size=1, name="median", yaxt="n") +
geom_histogram(binwidth=.5, position="dodge")
#create plotly object
p <- plotly_build(gg)
#append additional options to plot object
p$data[[1]]$hoverinfo <- "name+x" #hover options for 'average'
p$data[[2]]$hoverinfo <- "name+x" #hover options for 'median'
#display plot
plotly_build(p)
config(displayModeBar = F, showLink = F) # comment this line/config(.. out to get the plot
问题
我想使用 config
更改一些设置。但是,config()
的使用似乎覆盖了 hoverinfo
更改。
在运行配置之前(情节应该如何)...
然后 运行 config(displayModeBar = F, showLink = F)
...
最后,我在 hoverinfo
行之前尝试了 运行 配置:
#create plotly object
p <- plotly_build(gg)
config(p=p,displayModeBar = F, showLink = F) #run config before 'hoverinfo' changes
#append additional options to plot object
p$data[[1]]$hoverinfo <- "name+x" #hover options for 'average'
p$data[[2]]$hoverinfo <- "name+x" #hover options for 'median'
#display plot
plotly_build(p)
但是,config
设置似乎被 displayModeBar
的 return 覆盖(下面的屏幕截图):
添加最后的 config 行对我有用:
p <- plotly_build(gg)
p$data[[1]]$hoverinfo <- "name+x" #hover options for 'average'
p$data[[2]]$hoverinfo <- "name+x" #hover options for 'median'
p$config <- list(displayModeBar = F, showLink = F)
源自源代码。
更新
至少从 Plotly 版本 4.5.6 开始,config
现在是 Plotly 对象的 x
属性的一部分。该行应为:
p$x$config <- list(displayModeBar = F, showLink = F)
您的代码不起作用的原因是您没有将 config
回调分配给 p。 config
无形地 returns 一个修改过的 plotly 对象。
即,这应该可以正常工作:
p <- config(p=p,displayModeBar = F, showLink = F)
运行 plotly_build(p)
之前的代码和正确的绘图结果。
可重现代码
library(plotly)
#data
df1 <- data.frame(cond = factor( rep(c("A","B"), each=200) ),
rating = c(rnorm(200),rnorm(200, mean=.8)))
df2 <- data.frame(x=c(.5,1),cond=factor(c("A","B")))
#plot
gg <- ggplot(data=df1, aes(x=rating, fill=cond)) +
geom_vline(aes(xintercept=mean(rating, na.rm=T))
, color="red", linetype="dashed", size=1, name="average") +
geom_vline(aes(xintercept=median(rating, na.rm=T))
, color="blue", linetype="dashed", size=1, name="median", yaxt="n") +
geom_histogram(binwidth=.5, position="dodge")
#create plotly object
p <- plotly_build(gg)
#append additional options to plot object
p$data[[1]]$hoverinfo <- "name+x" #hover options for 'average'
p$data[[2]]$hoverinfo <- "name+x" #hover options for 'median'
#display plot
plotly_build(p)
config(displayModeBar = F, showLink = F) # comment this line/config(.. out to get the plot
问题
我想使用 config
更改一些设置。但是,config()
的使用似乎覆盖了 hoverinfo
更改。
在运行配置之前(情节应该如何)...
然后 运行 config(displayModeBar = F, showLink = F)
...
最后,我在 hoverinfo
行之前尝试了 运行 配置:
#create plotly object
p <- plotly_build(gg)
config(p=p,displayModeBar = F, showLink = F) #run config before 'hoverinfo' changes
#append additional options to plot object
p$data[[1]]$hoverinfo <- "name+x" #hover options for 'average'
p$data[[2]]$hoverinfo <- "name+x" #hover options for 'median'
#display plot
plotly_build(p)
但是,config
设置似乎被 displayModeBar
的 return 覆盖(下面的屏幕截图):
添加最后的 config 行对我有用:
p <- plotly_build(gg)
p$data[[1]]$hoverinfo <- "name+x" #hover options for 'average'
p$data[[2]]$hoverinfo <- "name+x" #hover options for 'median'
p$config <- list(displayModeBar = F, showLink = F)
源自源代码。
更新
至少从 Plotly 版本 4.5.6 开始,config
现在是 Plotly 对象的 x
属性的一部分。该行应为:
p$x$config <- list(displayModeBar = F, showLink = F)
您的代码不起作用的原因是您没有将 config
回调分配给 p。 config
无形地 returns 一个修改过的 plotly 对象。
即,这应该可以正常工作:
p <- config(p=p,displayModeBar = F, showLink = F)