Mat*_*ion 5 tree plot r image save
我无法在中保存由plot.Node函数生成的绘图data.tree。我尝试了以下方法:
### Create tree object and plot it
data(acme);
plot(acme);
Run Code Online (Sandbox Code Playgroud)
正如人们所期望的那样,这可以很好地显示情节。
### Try saving it as png
png(filename='file.png', type='cairo-png');
plot(acme);
dev.off();
Run Code Online (Sandbox Code Playgroud)
这将创建一个空文件。ggsave一样。显然,plot.Node它是DiagrammeR在引擎盖下使用的,所以我调查了那个包装。它具有导出图形的功能:
export_graph(acme, file_name="file.png");
Run Code Online (Sandbox Code Playgroud)
这给出了错误:
Error in file.exists(diagram) : invalid 'file' argument
Run Code Online (Sandbox Code Playgroud)
当我第一次转换为GraphViz时,出现了另一个错误:
export_graph(ToGraphViz(acme), file_name="file.png");
Error in graph$dot_code : $ operator is invalid for atomic vectors
Run Code Online (Sandbox Code Playgroud)
显然,导出到GraphViz并不能完全导出DiagrammeR的预期。
我在RStudio中,因此理论上可以使用GUI保存图,但是我需要在脚本中使用。
显然,plot.Node实际上并没有绘制任何内容-相反,它似乎会生成html / js。这是否意味着该结果不能存储为图形?还是我完全缺少的某些导出/转换功能?当然,我感觉好像缺少了一些明显的东西-我认为将绘制的data.trees 存储为图像的需求非常普遍。但是我不知道我仍然可以探索哪些潜在的解决方案。
我非常感谢任何人提供的任何指导!
正如sebastian-c所建议的,现在的工作方式与Matherion所建议的有所不同,从R 3.3.3开始,data.tree 0.7.0和DiagrammeR 0.9.0
先决条件:DiagrmmeRsvg和依赖项需要安装。要使此方法起作用,您可能需要安装V8,具体取决于您的OS。例如在ubuntu上:
apt-get install libv8-3.14-delibv8-3.14-dev
Run Code Online (Sandbox Code Playgroud)
然后在R中:
install.packages("DiagrammeRsvg")
Run Code Online (Sandbox Code Playgroud)
在Windows上,我无需安装任何软件(也许是因为已安装Chrome?)。
DiagrammeRsvg可用后,运行:
library(data.tree)
data(acme)
library(DiagrammeR)
export_graph(ToDiagrammeRGraph(acme), "export.pdf")
Run Code Online (Sandbox Code Playgroud)