标签: htmlwidgets

离线使用 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
查看次数

将 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
查看次数

是否可以在R和/或LeafletR的htmlwidgets中包含自定义css?

我想对我的传单地图进行一些样式更改.

是否可以包括

  • 风格元素或
  • css文件的自定义路径

通过htmlwidgets为R或LeafletR?

最好

r leaflet htmlwidgets

5
推荐指数
1
解决办法
1802
查看次数

在Rmarkdown中使htmlwidgets移动友好

rmarkdown的默认选项是设置fig.width = 12.如果可能的话,我希望自动调整移动设备的宽度.

我在http://akdata.org/misc/leafletmobile上主持以下Rmarkdown

---
title: "Untitled"
output: html_document

---


```{r}      
  library(leaflet)
  leaflet() %>% addTiles()
``
Run Code Online (Sandbox Code Playgroud)

当我使用chrome devtools中的不同移动设备玩时,它将调整到屏幕的宽度.我有一个我正在测试的物理三星Galaxy 5.

html css r r-markdown htmlwidgets

5
推荐指数
1
解决办法
642
查看次数

Shiny&networkD3响应节点点击

我正在尝试使用networkD3和shiny来可视化一些数据.我希望在单击图表中的节点时执行操作.我正在使用对齐网络,如下面的代码所示.

forceNetwork可以选择在单击节点时进行"clickaction"响应.但是,我无法为diagonalNetwork找到类似的选项,还有另一种方法可以实现吗?

谢谢你的帮助!

#### Load necessary packages and data ####
library(shiny)
library(networkD3)

data(MisLinks)
data(MisNodes)

hc <- hclust(dist(USArrests), "ave")
URL <- paste0(
  "https://cdn.rawgit.com/christophergandrud/networkD3/",
  "master/JSONdata//flare.json")



## Convert to list format
Flare <- jsonlite::fromJSON(URL, simplifyDataFrame = FALSE)


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

  output$simple <- renderDiagonalNetwork({
    diagonalNetwork(List = Flare, fontSize = 10, opacity = 0.9)
  })  


  output$force <- renderForceNetwork({
    forceNetwork(Links = MisLinks, Nodes = MisNodes, Source = "source",
                 Target = "target", Value = "value", NodeID = "name",
                 Group = "group", opacity …
Run Code Online (Sandbox Code Playgroud)

javascript r shiny networkd3 htmlwidgets

5
推荐指数
1
解决办法
896
查看次数

使用R中的NetworkD3包创建Sankey图

目前,我正在尝试networkD3按照Chris Grandrud(https://christophergandrud.github.io/networkD3/)的说明创建一个包含交互式的Sankey .
我不明白的是表格式,因为他只使用两列来可视化更多的过渡.更具体地说,我有一个包含四列代表4年的数据集.这些列中有不同的酒店名称,而每行代表一个客户,这四年内被"跟踪".

    URL <- paste0(
        "https://cdn.rawgit.com/christophergandrud/networkD3/",
        "master/JSONdata/energy.json")
    Energy <- jsonlite::fromJSON(URL)

    sankeyNetwork(Links = Energy$links, Nodes = Energy$nodes, Source = "source",
         Target = "target", Value = "value", NodeID = "name",
         units = "TWh", fontSize = 12, nodeWidth = 30)
Run Code Online (Sandbox Code Playgroud)

为了向您概述我的数据,请点击此处截图:

SampleDataScreenshot

我会给你更多"编码"信息,但由于我对RI这个话题很新,希望你能在这个问题上跟随我的思路.如果没有,请不要犹豫不决.

谢谢 :)

plot r sankey-diagram networkd3 htmlwidgets

5
推荐指数
2
解决办法
3746
查看次数

单击 ggplot/plotly 图表打开超链接

这是对为在 R 中创建的 html 小部件添加 onclick 打开超链接事件提供的答案的后续问题。考虑以下示例:

library(ggplot2)
library(plotly)
library(htmlwidgets)
library(htmltools)
myData <- data.frame(
  x=c(1,2,3), 
  y=c(3,2,1),
  label=c("Google", "Bing", "R"),
  category=c("search", "search", "other"),
  urls=c("http://google.de", "http://bing.com", "http://r-project.org")
)

f <- function(p) {
  ply <- ggplotly(p)
  javascript <- HTML(paste("
   var myPlot = document.getElementById('", ply$elementId, "');
   myPlot.on('plotly_click', function(data){
   var urls = ['", paste(myData$urls, collapse = "', '"), "'];
   window.open(urls[data.points[0].pointNumber],'_blank');
   });", sep=''))  
  prependContent(ply, onStaticRenderComplete(javascript))
}
Run Code Online (Sandbox Code Playgroud)

这按预期工作 - 单击任意点可打开相应的 url:

f(ggplot(myData, aes(x=x, y=y)) + geom_point(aes(text=label)))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

这不能按预期工作 - 索引不再匹配:

f(ggplot(myData, aes(x=x, y=y)) + geom_point(aes(text=label, color=category))) …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 plotly htmlwidgets

5
推荐指数
1
解决办法
1791
查看次数

如何在ggplotly中使工具提示文本中的超链接可访问?

我想在 ggplotly 的工具提示文本中创建一个可点击的超链接。超链接似乎出现在工具提示中,但无法单击。在我点击之前,工具提示消失了。如何让工具提示出现足够长的时间让我点击超链接?

这是我的意思的一个例子:

mtcars$hyperlink <- "<a href='https://plot.ly/ggplot2/'>plotly ggplot2 website</a>"
p <- ggplot(mtcars, aes(wt, mpg, text = hyperlink)) + 
  geom_point()
ggplotly(p)
Run Code Online (Sandbox Code Playgroud)

您会注意到不可点击的超链接。有没有人知道如何解决这个问题?

r ggplot2 plotly htmlwidgets ggplotly

5
推荐指数
1
解决办法
125
查看次数