首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R:将矢量图形导入绘图-无法使grImport生成有意义的XML

R:将矢量图形导入绘图-无法使grImport生成有意义的XML
EN

Stack Overflow用户
提问于 2016-10-13 13:44:32
回答 1查看 296关注 0票数 0

我正在尝试使用grImport包导入矢量图形,但是遇到了一个我无法解决的问题(尽管我花了一整天的时间在互联网上搜索,包括这里!)

我已经安装了Ghostscript,并将我的.png映像转换为一个.ps文件(并通过转换.jpg和.pdf映像来检查这是否是失败的原因--但结果是相同的)。

下面是我的.png文件的一个示例:简单交叉png

以及转换.ps文件后的一个示例:简单交叉ps

当我运行时,没有收到错误消息:

代码语言:javascript
复制
PostScriptTrace("cross.ps")
img <- readPicture("cross.ps.xml")

但是,如果我尝试在一个情节中使用这张图片,就没有绘制的图像。

跟踪此结果后,我发现PlotScriptTrace生成的PlotScriptTrace文件不包含任何路径:

代码语言:javascript
复制
str(img)
>Formal class 'Picture' [package "grImport"] with 2 slots
..@ paths  : Named list()
..@ summary:Formal class 'PictureSummary' [package "grImport"] with 3 slots
.. .. ..@ numPaths: num 0
.. .. ..@ xscale  : Named num [1:2] 99999 -99999
.. .. .. ..- attr(*, "names")= chr [1:2] "xmin" "xmax"
.. .. ..@ yscale  : Named num [1:2] 99999 -99999
.. .. .. ..- attr(*, "names")= chr [1:2] "ymin" "ymax"

因此,我认为在调用PostScriptTrace()或readPicture()时都存在问题,但我不知道如何从这里开始。

这是我的sessionInfo(),以防这有帮助:

代码语言:javascript
复制
R version 3.3.0 (2016-05-03)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.6 (El Capitan)

locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8

attached base packages:
[1] grid      stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
[1] grImport_0.9-0 XML_3.98-1.4  

请注意,我的问题与:R:将矢量图形导入绘图-无法使grImport工作完全相同,但是对前面这个问题的回答并没有帮助我--它指出,XML文件没有被正确编译,我已经知道了。

有人能指出我哪里出了问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-15 08:26:59

移到一个答案,太大了,评论不了。

我正在尝试导入.ps文件,我认为它是一个向量图形?

这是一个误解,PostScript程序可以同时包含向量和位图数据。因此,显然,如果您从位图数据(PNG、JPEG、TIFF等)开始,那么PostScript等效程序将只包含相同的(模块化压缩)位图数据。

在您发布的PostScript程序内部,我们可以看到Ghostscript的ps2write设备上通常的全面PostScript头,后面跟着实际的程序:

代码语言:javascript
复制
%%EndPageSetup
5 0 obj
<</Length 156041>>stream
q 0.12 0 0 0.12 0 0 cm
q 3950 0 0 5341.67 508.333 833.333 cm
BI
/CS/RGB
/W 1422
/H 1923
/BPC 8
/F[/A85
/LZW]
ID
J3Vsg3$]7K#D>EP:q1$o*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H>q_R=AlC^c
...
...
=Z;P44-S>^PSliQ=\"^E99e+*Po3Mc=]UKU!W~>
EI Q
Q

endstream
endobj
pagesave restore
%%PageTrailer
%%Trailer
end
%%EOF

ID函数(在prolog中定义)将下列内联数据绘制为位图图像。然后是位图数据,程序发出页面,清理并退出。

所以根本就没有矢量数据,这并不奇怪,因为源数据不是向量的。

我对R一无所知,但从我看到的问题来看,我假设它不能处理位图数据,这就是为什么得到空白输出的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40022764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档