如何在 R GUI 中查看 svg 图形弹出
how to see svg graphics pop up in R GUI
library(rsvg)
str <- charToRaw('<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
<style>
circle {
fill: gold;
stroke: maroon;
stroke-width: 10px;
}
</style>
<circle cx="150" cy="150" r="100" />
</svg>')
rsvg_png(str, file = 'ex1.png') # repeat. I want to remove the save but render on GUI
如何在弹出窗口中显示图片?每次我进行更改时,我都必须保存图像,打开它并重复。使用 ggplot2
如果有绘图对象,一旦在 GUI 控制台上键入它,就会显示图像。
我试过了
str
plot.new()
str
dev.off()
我尝试了各种绘图和打印字符串的组合,但都没有成功。任何可以在 R GUI 控制台的弹出窗口中呈现 SVG 的建议?
你至少有两个选择来完成这个:
创建一个新绘图,读入图像文件,并在绘图上绘制。这将显示在图像设备上,例如 x11、pdf、Rstudio 图像查看器窗格(“绘图”)等,具体取决于您使用的应用程序;请参阅下面的 f
生成一个html文件到link图像文件。然后可以在默认浏览器或 Rstuio 查看器窗格(“查看器”)中打开,具体取决于您使用的是哪个;请参阅下面的 g
library('rsvg')
str <- charToRaw('<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
<style>
circle {
fill: gold;
stroke: maroon;
stroke-width: 10px;
}
</style>
<circle cx="150" cy="150" r="100" />
</svg>')
rsvg_png(str, file = '~/desktop/ex1.png')
## open in the R/RGui/Rstudio image viewer
f('~/desktop/ex1.png')
## open in Rstudio viewer or browser in R/Rgui
g('~/desktop/ex1.png')
函数:
## image viewer
f <- function(img) {
img <- png::readPNG(img)
plot.new()
plot.window(0:1, 0:1, asp = 1)
rasterImage(img, 0, 0, 1, 1)
}
## html viewer/browser
g <- function(img, use_viewer = TRUE) {
file.copy(img, tempdir(), overwrite = TRUE)
tmp <- tempfile(fileext = '.html')
writeLines(sprintf('<img src="%s">', basename(img)), con = tmp)
if (use_viewer)
tryCatch(
rstudioapi::viewer(tmp),
error = function(e) browseURL(tmp)
)
else browseURL(tmp)
}
library(rsvg)
str <- charToRaw('<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
<style>
circle {
fill: gold;
stroke: maroon;
stroke-width: 10px;
}
</style>
<circle cx="150" cy="150" r="100" />
</svg>')
rsvg_png(str, file = 'ex1.png') # repeat. I want to remove the save but render on GUI
如何在弹出窗口中显示图片?每次我进行更改时,我都必须保存图像,打开它并重复。使用 ggplot2
如果有绘图对象,一旦在 GUI 控制台上键入它,就会显示图像。
我试过了
str
plot.new()
str
dev.off()
我尝试了各种绘图和打印字符串的组合,但都没有成功。任何可以在 R GUI 控制台的弹出窗口中呈现 SVG 的建议?
你至少有两个选择来完成这个:
创建一个新绘图,读入图像文件,并在绘图上绘制。这将显示在图像设备上,例如 x11、pdf、Rstudio 图像查看器窗格(“绘图”)等,具体取决于您使用的应用程序;请参阅下面的
f
生成一个html文件到link图像文件。然后可以在默认浏览器或 Rstuio 查看器窗格(“查看器”)中打开,具体取决于您使用的是哪个;请参阅下面的
g
library('rsvg')
str <- charToRaw('<svg viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg">
<style>
circle {
fill: gold;
stroke: maroon;
stroke-width: 10px;
}
</style>
<circle cx="150" cy="150" r="100" />
</svg>')
rsvg_png(str, file = '~/desktop/ex1.png')
## open in the R/RGui/Rstudio image viewer
f('~/desktop/ex1.png')
## open in Rstudio viewer or browser in R/Rgui
g('~/desktop/ex1.png')
函数:
## image viewer
f <- function(img) {
img <- png::readPNG(img)
plot.new()
plot.window(0:1, 0:1, asp = 1)
rasterImage(img, 0, 0, 1, 1)
}
## html viewer/browser
g <- function(img, use_viewer = TRUE) {
file.copy(img, tempdir(), overwrite = TRUE)
tmp <- tempfile(fileext = '.html')
writeLines(sprintf('<img src="%s">', basename(img)), con = tmp)
if (use_viewer)
tryCatch(
rstudioapi::viewer(tmp),
error = function(e) browseURL(tmp)
)
else browseURL(tmp)
}