首页 > 解决方案 > 在 Chrome 中打开 r-plotly markdown 时出现滚动条时未选择预期的图例项

问题描述

我在使用 markdown 脚本编织一个 plotly 对象时遇到了 HTML 输出的问题。只有在 Chrome 中打开生成的 HTML 时,才会出现此问题。当有足够的图例项需要图例滚动条时,尝试选择图例项不会选择预期的项。如果没有滚动条,单击图例项会突出显示或取消突出显示当前鼠标位置下的任何项,而是将所有图例项压缩到可查看的图例空间中。例如,即使图例一直滚动到顶部,在图例空间底部附近单击也会选择当前不可见的最底部的图例项。传奇项目越多,它得到的就越多。

在 chrome 中打开时,如何生成带有适当可滚动项目的图例?较大的项目将由最终用户使用,他们选择的浏览器我将无法控制。

编辑:
情节变厚了。我发现如果打开了一个附加的浏览器窗口,该窗口还包含一个绘图对象,如果该对象在图例中没有滚动条,则该问题会消失。也就是说:通过打开包含没有图例滚动的图的第二个选项卡,在一个浏览器窗口中主动出现问题,第一个窗口(包含滚动)中的图例开始按预期运行。即使在关闭第二个窗口后,带有滚动条的图例仍继续正常运行,但如果打开另一个包含带有图例滚动图的窗口(最后打开的指示行为),则停止正常运行。

下面的代码是精简版,但重现了相同的问题。无论使用 R-studio 中的 Knit 按钮还是使用render()常规 R 脚本,都会出现此问题。

---
title: Failed legend
output:
  html_document
---

```{r message=FALSE, warning=FALSE, include=FALSE}
invisible({
  library(plotly)
  library(htmltools)
  library(knitr)
})
```

```{r echo=FALSE, warning=FALSE, comment=NA, results="asis", out.width='100%'}

df <- data.frame(NAMES=LETTERS[1:24],X=sample(1:15,24,T), Y=runif(24,1,3))


pm <- plot_ly(data = df)
pm <- pm %>% 
  layout(title="Test plot", legend=list(bgcolor = "#E2E2E2"))

pm <- pm %>%
    add_trace(y=~Y, x=~X, type="scatter", mode="markers", color=~NAMES, marker=list(size=7))

pm

```

标签: htmlrgoogle-chromer-markdownplotly

解决方案


推荐阅读