标签: htmlwidgets

如何在R中将html输出捕获为png

我使用 R 中由 networkD3 包创建的交互式输出。我知道如何将输出保存为 html 页面,但我还需要将图表的“静态”版本保存为 .png 文件。

代码如下所示:

# Load package
library(networkD3)

# Create fake data
src <- c("A", "A", "A", "A", "B", "B", "C", "C", "D")
target <- c("B", "C", "D", "J", "E", "F", "G", "H", "I")
networkData <- data.frame(src, target)

# Plot
simpleNetwork(networkData)
Run Code Online (Sandbox Code Playgroud)

我可以通过单击“导出”然后“另存为图像”来保存输出。但是,我更喜欢在我的代码中使用一些命令来保存图片。

png r networkd3 htmlwidgets

7
推荐指数
1
解决办法
1万
查看次数

在Plotly中更改悬停文本的大小

我正在根据R中的ggplot构建一个Plotly图.我想增加悬停框中文本的大小.假设我有一个像这样的散点图:

library(plotly)
library(ggplot2)

d <- data.frame(a = sample(1:50, 30, T), 
                b = sample(1:50, 30, T), 
                col = factor(sample(1:3, 30, T)))

gg <- ggplot() + geom_point(aes(x = a, y = b, color = col), data = d)

p <– plotly_build(gg)
p
Run Code Online (Sandbox Code Playgroud)

有没有办法改变悬停文本的大小?

r plotly htmlwidgets

7
推荐指数
2
解决办法
2349
查看次数

使用htmlwidgets :: scaffoldWidget将外部js库合并到一个新包中,以进入一个闪亮的应用程序

slickjavascript库(http://kenwheeler.github.io/slick/)给我留下了深刻的印象,并希望将它整合到我的闪亮应用程序/软件页面中.

我想htmlwidgets在R中使用包含slick js库的软件包,所以已经开始尝试创建一个软件包,如在线文档(http://www.htmlwidgets.org/develop_intro.html)中所建议的那样,通过执行下列...

devtools::create("slick")              
setwd("slick")                          
htmlwidgets::scaffoldWidget("slick")
Run Code Online (Sandbox Code Playgroud)

我从https://github.com/kenwheeler/slick/archive/1.6.0.zip下载了js库

并将其放入包的结构中,以便我有一个看起来有点像这样的文件结构.

R/
| slick.R

inst/
|-- htmlwidgets/
|   |-- slick.js
|   |-- slick.yaml
|   |-- lib/
|   |   |-- slick-1.6.0/
|   |   |   |-- slick/
|   |   |   |   |-- slick.min.js 
|   |   |   |   |-- slick.js
|   |   |   |   |-- slick.css
|   |   |   |   |-- slick-theme.css
Run Code Online (Sandbox Code Playgroud)

我的slick.yaml文件看起来像这样......

dependencies:
  - name: slick
    version: 1.6.0
    src: htmlwidgets/lib/slick-1.6.0
    script:
        - slick/slick.min.js
        - …
Run Code Online (Sandbox Code Playgroud)

javascript r shiny htmlwidgets

7
推荐指数
1
解决办法
453
查看次数

Firefox中sankeyNetwork(NetworkD3)的微小绘图输出

由于每个对象,我用的时候获得在Firefox中非常小的情节sankeyNetwork(),但无法在Chrome或RStudio.

我没有在脚本中包含任何CSS或JS - 下面的代码为我生成了这个结果.

我错过了什么CSS属性吗?

我使用的是R 3.4.1,闪亮的1.1.0,networkD3 0.4和Firefox 52.9.0.

火狐: 火狐

铬: 铬

library(shiny)
library(magrittr)
library(shinydashboard)
library(networkD3)

labels = as.character(1:9)
ui <- tagList(
  dashboardPage(
    dashboardHeader(
      title = "appName"
    ),
    ##### dasboardSidebar #####
    dashboardSidebar(
      sidebarMenu(
        id = "sidebar",
        menuItem("plots",
                 tabName = "sPlots")
      )
    ),
    ##### dashboardBody #####
    dashboardBody(
      tabItems(
        ##### tab #####
        tabItem(
          tabName = "sPlots",
          tabsetPanel(
            tabPanel(
              "Sankey plot",
              fluidRow(
                box(title = "title",
                    solidHeader = TRUE, collapsible = TRUE, status = "primary",
                    sankeyNetworkOutput("sankeyHSM1")
                )
              )
            ) …
Run Code Online (Sandbox Code Playgroud)

r shiny sankey-diagram networkd3 htmlwidgets

7
推荐指数
1
解决办法
385
查看次数

串扰和情节 - ggplotly 不接受共享数据对象

我一直在尝试使用绘图和串扰库生成交互式链接可视化。如下例所示,似乎可以向 ggplot2 传递一个“共享数据框”对象,以便使用 ggplotly() 生成链接视图。当我尝试运行此示例时,我收到以下错误消息:

错误:ggplot2 不知道如何处理 SharedData/R6 类的数据

我正在使用当前版本的 ggplot2 (v. 2.2.1) 和plotly (4.5.6)。什么可能导致此错误?

谢谢帮助!

我试图复制的示例可以在这里找到:

https://cpsievert.github.io/plotly_book/linking-animated-views.html

library(gapminder)
library(crosstalk)
library(ggplot2)
library(plotly)

g <- crosstalk::SharedData$new(gapminder, ~continent)

gg <- ggplot(g, aes(gdpPercap, lifeExp, color = continent, frame = year)) +
  geom_point(aes(size = pop, ids = country)) +
  geom_smooth(se = FALSE, method = "lm") +
  scale_x_log10()
  ggplotly(gg) %>% 
  highlight("plotly_hover")

  Error: ggplot2 doesn't know how to deal with data of class SharedData/R6
Run Code Online (Sandbox Code Playgroud)

r plotly htmlwidgets

6
推荐指数
0
解决办法
2442
查看次数

离线使用 plotly r 包时有关用户名的错误消息

我正在尝试开始对 R 使用 plotly,但是我遇到了关于用户名的错误。当我尝试执行以下代码时...

test=ggplot(diamonds,aes(x=diamonds$carat,y=diamonds$price))+geom_point()
test2=plotly(test)
plotly(test)
Run Code Online (Sandbox Code Playgroud)

...我收到错误消息:

Storing 'username' as the environment variable 'plotly_username'
Error in Sys.setenv(plotly_username = username) : 
  wrong length for argument
Run Code Online (Sandbox Code Playgroud)

我认为 plotly 的 R 包可以通过 htmlwidgets 在没有用户名的情况下使用。据我所知,我使用的是最新版本的 plotly、ggplot 和 htmlwidgets。我究竟做错了什么?

r plotly htmlwidgets

6
推荐指数
1
解决办法
3615
查看次数

R Shiny 中 html 小部件之间的交互

我正在开发一个 R 闪亮应用程序,它使用多个 html 小部件,特别是networkD3d3heatmapchorddiag

这些小部件单独工作正常。但是,在同一页面中使用它们会在它们应该出现的地方留下空白

这是显示错误的可重现代码。在 UI 中注释绘图行,您将看到绘图出现和消失..

我非常感谢你的帮助!

# libraries
library(shiny)
library(d3heatmap)
library(chorddiag)
library(networkD3)

# Server
server <- function(input, output) {

  # create heatmap
  output$heatmap <- renderD3heatmap({
    d3heatmap(mtcars, scale = "column", colors = "Spectral")
  })

  # create chord diagram
  output$chord <- renderChorddiag({
    m <- matrix(c(11975,  5871, 8916, 2868,1951, 10048, 2060, 6171, 8010, 16145, 8090, 8045,1013,   990,  940, 6907),
    byrow = TRUE, nrow = 4, ncol = 4)
    haircolors <- c("black", …
Run Code Online (Sandbox Code Playgroud)

r shiny networkd3 d3heatmap htmlwidgets

6
推荐指数
1
解决办法
542
查看次数

将 Sparkline htmlwidget 包含在 Shiny 应用程序的数据表单元格中,而无需诉诸(太多)JavaScript

我正在使用该sparkline包生成条形图,并将其放入datatableShiny 应用程序中的单元格中。我已经设法在独立中产生所需的输出datatable,但是当我将其放入 Shiny 应用程序中时,它不起作用。spk_add_deps()这可能与如何识别 htmlwidgets有关。我尝试过spk_add_deps()多次移动该函数并向其传递各种标识符,但没有任何效果。

我确实在这里发现了本质上相同的问题Render datatable with Sparklines in Shiny 但给定的解决方案 (1) 依赖于在回调函数中为迷你图编写 JavaScript 代码(违背了使用 R 函数的目的sparkline())和 (2) 似乎如果迷你图在查看器中呈现,那么我们离让它们在 Shiny 应用程序中呈现而无需编写所有 JavaScript 就不远了。

这是演示:

# Preliminary, load packages and build a demo table with the sparkline code merged in
library(shiny)
library(DT)
library(data.table)
library(sparkline)

## Create demo data sets
my_mtcars <- data.table(mtcars, keep.rownames = TRUE)
names(my_mtcars)[1] <- 'car_id'

set.seed(0)
data_for_sparklines <- data.table(car_id = rep(my_mtcars$car_id, 5),
                                  category = …
Run Code Online (Sandbox Code Playgroud)

r sparklines shiny dt htmlwidgets

6
推荐指数
1
解决办法
2571
查看次数

保存为网页时如何为 networkD3 可视化添加标题?

我使用以下代码创建了一个交互式可视化:

library(networkD3)

nodes = data.frame("name" = c("node1", "node2","node3", "node4", "node5", "node6", "node7"))
links = as.data.frame(matrix(c(
0,1,7937,
0,2,6990,
0,3,2483,
1,4,2120,
2,4,666,
3,4,282,
1,5,4583,
2,5,5657,
3,5,731,
1,6,1234,
2,6,756,
3,6,1470), byrow = TRUE, ncol = 3))

names(links) = c("source", "target", "value")

sankey <- sankeyNetwork(Links = links, Nodes = nodes,
          Source = "source", Target = "target",
          Value = "value", NodeID = "name",
          fontSize= 12, nodeWidth = 15)'
Run Code Online (Sandbox Code Playgroud)

这是我第一次使用 networkD3 包(或任何与此相关的交互式包),并且通过玩弄我发现为了保持它的交互性,它必须作为网页发布(或者有其他方式吗??)但是查看包的文档我看不到添加标题或标题/评论的方法。我想分享这一轮工作,所以需要在发布的网页上解释每个级别的理想含义

r networkd3 htmlwidgets htmltools

6
推荐指数
2
解决办法
1998
查看次数

如何在rmarkdown文档中设置rpivotTable的大小

我想rpivotTable在 rmarkdown HTML 输出中包含几个 s (文档、flexdashboard、其他生成独立 HTML 文件的选项都可以;我不能为此使用 Shiny)。如何为此 htmlwidget 指定固定宽度和/或高度?

我面临的问题是 rpivotTable htmlwidget 似乎会根据我的浏览器缩放来调整自身大小,并且经常与文档中的文本或后续的 rpivotTable 输出重叠(请参见屏幕截图)。每次我在 rpivotTable 中更改某些内容(例如拖放新行或列变量,或设置过滤器)时,情况都会变得更糟。

一些谷歌搜索表明我需要了解 html 小部件和 javascript 调整大小,如果是这样的话,您能否向我指出此 htmlwidget 的正确调整大小方法,或者在这里建议调整大小功能?我意识到这很棘手,因为数据透视表应该调整大小,但假设我知道正确的大小(例如 1000 像素宽,500 像素高),或者我永远不会更改需要调整大小的选项,并将其硬编码达到某些设定的尺寸就可以了。 示例 html 输出

上述输出的代码(foo.rmd):

---
title: "test_rpt"
output: html_document
---

```{r setup, include=FALSE}
library(rpivotTable)
```

## Plot1

```{r}
rpivotTable(mtcars, rows = 'mpg', aggregatorName = 'Sum', vals = 'cyl')
```

## Plot2

```{r}
rpivotTable(mtcars)
```
Run Code Online (Sandbox Code Playgroud)

r r-markdown htmlwidgets rpivottable

6
推荐指数
2
解决办法
709
查看次数