与 flexdashboard 一起使用后,ggiraph::girafe() 输出的大小与 RStudio 查看器上的文档不一致

问题描述

我有许多使用 {ggplot2} 和 {ggiraph} 的图,我已将它们合并到一个 {flexdashboard} 中

在尝试使用仪表板显示它们之前,这些图使用大小选项 width = 0.7

在 RStudio 的查看器上正确显示

但是,它们不会显示在仪表板上(只是一个空白面板),如果直接在 RStudio 中运行,现在会生成一个空白面板。经过一番调查,似乎有些设置发生了变化,并且由于大小与窗口不一致而无法输出图表。

如果我将宽度设置更改为 10,它会在 RStudio 查看器中正确显示,这看起来很奇怪。

我这里有一个小代表:

library(ggplot2)
library(ggiraph)

#dummy dataframe
df <- data.frame(
  x = seq.Date(Sys.Date() - 30,Sys.Date() - 1,by = "days"),y = runif(30,2) 
)

p <- ggplot2::ggplot(df,(aes(x,y)))+
  geom_point_interactive(aes(tooltip = x,data_id = x))


plot <- girafe(ggobj = p,width =0.7)

print(plot)

这会产生以下输出

width set at 0.7

但是如果我将宽度设置调整为 10

plot <- girafe(ggobj = p,width =10)

print(plot)

我得到以下信息:

width set to 10

这似乎与 {ggiraph} 的文档不一致,是否有一些图形设置已被 {flexdashboard} 修改?我已经在 {flexdashboard} 输出上尝试了带有 {plotly} 和 {echarts4r} 的交互式 (js) 图表,这些图表没有显示相同的行为。

我正在使用 RStudio 1.4.1103 R 版本 4.0.2 系统:x86_64-apple-darwin17.0

解决方法

我一直在试验,似乎我可以通过一致地使用 width_svg 来控制输出。

我仍然不知道为什么会出现问题,但我怀疑某些潜在的图形设置。