我有一个奇怪且令人沮丧的问题。当我在故事板(来自flexdashboard包)中构建情节图时,我的传奇中出现了一个非常烦人且完全不必要的滚动条。当有人试图打开或关闭其中一个点时,滚动条会抽搐,实际上无法点击该内容。仅当在页面加载期间没有立即显示带有绘图图形的选项卡时,此滚动条才会出现 - 即,如果页面加载了选定的其他选项卡。
我可以在故事板之外创建相同的图形,在RStudio中没有任何问题,或者将其保存为htmlwidget并将其加载到Chrome中。但是当我加载我的故事板时,无论是在RStudio还是在Chrome中,我都会看到这个恼人的滚动条。滚动条存在,无论它是垂直还是水平的图例。
ggplotly对象没有这个问题。
这是不必要滚动条的示例。 ggplotly图表没问题,图中的图表有滚动条。
---
title: "Untitled"
output:
flexdashboard::flex_dashboard:
storyboard: true
---
```{r setup, include=FALSE}
library(flexdashboard)
```
### ggplot
```{r}
library(plotly)
carggplot <- ggplot(mtcars, aes(hp, mpg, fill = as.factor(carb))) +
geom_point() +
theme_bw()
ggplotly(carggplot)
```
### plotly
```{r}
carsplot <- plot_ly(
data = mtcars,
x = ~hp,
y = ~mpg,
color = ~as.factor(carb),
type = "scatter",
mode = "markers"
)
carsplot
```
我一直找不到关于这个问题的任何文档,虽然我发现某个人使用python接口发布了similar problem。
我正在寻找一种完全关闭滚动条的方法(同时保留图例),或者滚动条的一些解释。
flexdashboard为0.5,情节为4.7.1,R为64位3.4.1,Windows 7。
答案 0 :(得分:1)
有很多活动部件正在回答你的问题。我不会详细介绍每一个,但只是简单地触及它们。
当图例的长度变长时,plotly.js
图表的行为与设计相符,它会自动插入滚动条。
ggplotly
图表不会发生这种情况,因为所有视觉样式都来自ggplot
对象。
flexdashboard
是这种情况的罪魁祸首,因为它如何动态拟合可用空间并告知plotly.js
如何渲染。值得注意的是,这在源html中显示为 SVG 。
然后解决方案是操纵 DOM 以隐藏/删除/更改有问题的元素。
我在下面提供的解决方案有点像黑客。更永久的解决方案可能是在RStudio向好人提出问题,看看是否可以对包裹进行任何更改,从而解决您的问题。
如果您将runtime: shiny
添加到 YAML 标题中,则可以使用Dean Attali之前的优秀shinyjs
包。虽然我不是这方面的专家,但我在 MRE 中添加了一些行,用于删除{{1>} {em> SVG 中的<rect>
元素}}。重要的是要注意,您可能需要更改我提供的 javascript 更具体,而不是删除您可能希望保留的元素。
以下是class=scrollbar
代码,其中包含我已做出更改的评论。
Rmd
N.B。正如我发布的那样,我的结果不可靠,并会进一步挖掘。
答案 1 :(得分:0)
老问题,但如果其他人有同样的问题,我想在那里找到我的解决方案......
我有同样的问题,我用这种方法解决了它:
ggplotly(carggplot, height = 500)
我的传奇中有一个迷你滚动条,在调用ggplotly()
时调整高度,允许我调整到使一切正常工作所需的正确高度。