如何以高质量保存阴谋图?

Lau*_*raP 5 r plotly

我在剧情中制作的每张图都看起来很棒,直到我保存它的那一刻,所以图像看起来有点哑光,如果它有意义,那就是非常差的质量.有谁知道如何以高品质保存它?您可以使用此基本图表作为示例.

library(plotly)

x <- c(1:100)
random_y <- rnorm(100, mean = 0)
data <- data.frame(x, random_y)

p <- plot_ly(data, x = ~x, y = ~random_y, type = 'scatter', mode = 'lines')
Run Code Online (Sandbox Code Playgroud)

谢谢!

Sal*_*m B 6

至少在Plotly v4.7.1 +中,您可以将图形导出为SVG(由于是矢量图形格式,因此这可能是最高质量的)。

为此,您需要Rselenium安装该软件包。然后,您可以export按以下方式使用Plotly的功能(在本示例中,使用Chrome作为Selenium驱动程序):

if ( !require(RSelenium) ) {
  install.packages("RSelenium", repos = "https://cloud.r-project.org/")
}

p %>%
  export(file = "filename.svg",
         selenium = RSelenium::rsDriver(browser = "chrome"))
Run Code Online (Sandbox Code Playgroud)

这会将图表下载filename.svg到默认的下载目录(~/Downloads在许多Linux发行版或%USERPROFILE%\DownloadsWindows上)。如果您想将SVG下载到当前的R工作目录中,则需要将几个选项传递给Selenium驱动程序(在此示例中为Chrome):

p %>%
  export(file = "filename.svg",
         selenium = RSelenium::rsDriver(browser = "chrome",
                                        extraCapabilities = list(
                                          chromeOptions = 
                                            list(prefs = list(
                                              "profile.default_content_settings.popups" = 0L,
                                              "download.prompt_for_download" = FALSE,
                                              "download.default_directory" = getwd())
                                            ))))
Run Code Online (Sandbox Code Playgroud)

可以在以下Gist中找到更复杂的自定义导出功能,该功能允许设置导出的SVG的宽度和高度(以及更多的可选转换为PDF和PNG):https : //gist.github.com/salim- b / 32c4370cee4ac0a3fbfef13a9ce98458


Pet*_*ney 0

如果您像我一样尝试在离线模式下使用 Plotly,我建议您执行以下步骤:

首先,另存为 SVG:

fname = "/home/me/output"
plot(fig, filename=fname, image='svg', image_filename=fname)
Run Code Online (Sandbox Code Playgroud)

然后在浏览器中打开 HTML(名为output.html),它会提示您保存 SVG(这是一个令人沮丧的步骤,但目前 Plotly 没有办法解决它)。

然后,使用 cairosvg 通过更好的缩放将 SVG 转换为 PNG。请参阅我的其他答案。在 python 中使用 cairosvg 模块时可以指定缩放吗