从 R 中的 Plotly 导出 PNG 文件

Posted

技术标签:

【中文标题】从 R 中的 Plotly 导出 PNG 文件【英文标题】:Exporting PNG files from Plotly in R 【发布时间】:2016-03-01 18:55:46 【问题描述】:

如何使用代码将 Plotly 图表导出为 R 中的图像? (不使用图表上的导出按钮)。

例如,来自 Plotly 网站的这段代码,创建这个图表:

library(plotly)
set.seed(100)
d <- diamonds[sample(nrow(diamonds), 1000), ]
plot_ly(d, x = carat, y = price, text = paste("Clarity: ", clarity),
        mode = "markers", color = carat, size = carat)

如何将其保存为图像?

官网在python中有this material,但是我在R中没有找到类似的东西。

【问题讨论】:

只是备注:您似乎通过点大小、颜色和 x 轴上的位置来可视化克拉。这是多余的,可能会产生误导。 【参考方案1】:

根据情节,以下应该有效:

1) 按照此处所述安装 Orca:https://github.com/plotly/orca

2) 您可能需要重新启动电脑

然后运行以下代码:

有一个导出功能,可让您保存图像而无需连接到 plotly 服务器。您可以在 plotly 包文档中找到它:

p <- plot_ly(...)
orca(p, file = "image.png")

注意:我发现提供完整路径会引发 javascript 错误。所以我只给了文件名。文件保存在 Windows 中的"C:/Users/user/Documents" 中。

【讨论】:

【参考方案2】:

由于我是新人,因此无法发表评论,因此我将其发布为回复。自 plotly v4.9.0 起,export 函数已被弃用。相反,orca 函数是将绘图对象导出为静态图像的建议方法。在此处了解更多信息:orca function R documentation

【讨论】:

【参考方案3】:

有一个export 功能可以让您保存图像而无需连接到plotly 服务器。你可以在plotly package doc找到它:

p <- plot_ly(...)
export(p, file = "image.png")

您甚至可以通过将扩展名选择为.pngjpeg.pdf 来更改输出的文件类型。

您还可以将图像保存在html 文件中,这样您就可以使用htmlwidgets::saveWidget 进行缩放或显示注释等plotly 体验:

p <- plot_ly(...)
htmlwidgets::saveWidget(p, file = "image.html")

【讨论】:

export 也依赖于 phantomjs,我希望它和 ggplot2 一样,比如 chartvar 现在可以使用orca,不依赖phantomjs。用法同export:orca(p, file = "image.png")。有关详细信息,请参阅github.com/plotly/orca。【参考方案4】:

在Plotly docs in CRAN 中我发现了函数plotly_IMAGE

这是一个例子:

set.seed(100)
d <- diamonds[sample(nrow(diamonds), 1000), ]
p <- plot_ly(d, x = carat, y = price, text = paste("Clarity: ", clarity),
        mode = "markers", color = carat, size = carat)

plotly_IMAGE(p, width = 500, height = 500, format = "png", scale = 2,
             out_file = "~/desktop/test.png")

更新

plotly_IMAGE 使用 Plotly 服务器工作。欢迎使用本地解决方案。

【讨论】:

我在使用plotly_IMAGE 时遇到以下错误,如上所示:Error in process.image(append_class(resp, "image")) : Unauthorized (HTTP 401). 我该怎么办? @joni 你需要互联网连接。 好的,解决了问题:我必须通过Sys.setenv("plotly_username"="your_plotly_username") Sys.setenv("plotly_api_key"="your_api_key") 设置我的身份验证凭据 API 密钥 可以在个人资料设置HERE 中找到。 有本地解决方案,检查我的分析器。

以上是关于从 R 中的 Plotly 导出 PNG 文件的主要内容,如果未能解决你的问题,请参考以下文章

R:如何将绘图/图形导出为 png 或 pdf 文件

Plotly:将绘图图导出为 png 时如何仅导出活动图例?

仅将 PDF 文件中的一页导出为 PNG

Python Plotly 到 PNG 文件在左边距上截断条形图文本

如何将 Plotly 图保存在 ipynb 文件中?

将 R 中的链梯输出导出到 CSV 文件