gpt4 book ai didi

java - 如何打印 R 的 svg() 输出而不是写入文件?

转载 作者:太空宇宙 更新时间:2023-11-04 07:17:33 27 4
gpt4 key购买 nike

我正在编写一个 Java Web 应用程序,用户可以在其中选择和绘制数据。这些图是用 R 生成的,并导出为 SVG。我想知道是否有一种方法可以直接返回 SVG 输出流,而不必在 java 中编写文件并读取该文件。

所以不要这样做:

svg("uniqueName.svg")
plot(someData)
dev.off()

然后必须用 Java 读取文件,我想将 SVG 的 XML 数据打印到控制台。

这可能吗?

最佳答案

您可以使用 fridSVG 包中的 grid.export。它生成当前网格页面的 SVG 版本。这是一个例子:

library(gridSVG)
library(ggplot2)
qplot(Sepal.Length, Petal.Length, data = iris, color = Species)

ll <- grid.export() ## without parameter to save the result a sa list
head(ll$svg)
# $metadata
# <metadata xmlns:gridsvg="http://www.stat.auckland.ac.nz/~paul/R/gridSVG/">
# <gridsvg:generator name="gridSVG" version="1.3-1" time="2013-11-04 13:48:22"/>
# <gridsvg:argument name="name" value="Rplots.svg"/>
# <gridsvg:argument name="exportCoords" value="none"/>
# <gridsvg:argument name="exportMappings" value="none"/>
# <gridsvg:argument name="exportJS" value="none"/>
# <gridsvg:argument name="res" value="72"/>
# <gridsvg:argument name="prefix" value=""/>
# <gridsvg:argument name="addClasses" value="FALSE"/>
# <gridsvg:argument name="indent" value="TRUE"/>
# <gridsvg:argument name="htmlWrapper" value="FALSE"/>
# <gridsvg:argument name="usePaths" value="vpPaths"/>
# <gridsvg:argument name="uniqueNames" value="TRUE"/>
# <gridsvg:separator name="id.sep" value="."/>
# <gridsvg:separator name="gPath.sep" value="::"/>
# <gridsvg:separator name="vpPath.sep" value="::"/>
# </metadata>
#
# attr(,"class")
# [1] "XMLInternalNodeList" "XMLNodeList"

PS:这不适用于基本图形,但适用于任何基于网格的绘图(网格,ggplot2,格子)...

关于java - 如何打印 R 的 svg() 输出而不是写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19767523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com