从 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")
您甚至可以通过将扩展名选择为.png
、jpeg
或.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 文件的主要内容,如果未能解决你的问题,请参考以下文章
Plotly:将绘图图导出为 png 时如何仅导出活动图例?