Perl Statistics::R生成空白打印图像(jpeg)

Perl Statistics::R生成空白打印图像(jpeg),perl,r,Perl,R,我目前正在使用ActiveState Perl 5.14和R项目版本2.13.2。在Perl中,我使用的是Statistics::R版本0.08。根据ActiveState,较新版本的Statistics::R(0.24)未能通过审查,因此无法通过PPM获得 历史:一段时间以来,我一直成功地使用Perl访问R来执行分析。现在我想生成分析结果的JPEG图像,以便于可视化 问题是:我可以在R控制台中成功地生成图像。然而,当我通过Perl运行相同的命令时,我只得到一个空白图像。我的控制台代码包括(当然

我目前正在使用ActiveState Perl 5.14和R项目版本2.13.2。在Perl中,我使用的是Statistics::R版本0.08。根据ActiveState,较新版本的
Statistics::R
(0.24)未能通过审查,因此无法通过PPM获得

历史:一段时间以来,我一直成功地使用Perl访问R来执行分析。现在我想生成分析结果的JPEG图像,以便于可视化

问题是:我可以在R控制台中成功地生成图像。然而,当我通过Perl运行相同的命令时,我只得到一个空白图像。我的控制台代码包括(当然是简化的):

xstart\u sharedR

$R->send(“x忘记统计::R。只需使用系统调用。至少我是这么做的

my $path_to_r = "C:/Program Files/R/bin/Rscript.exe";

my $cmd = "x<-c(1,2,3,4,5);";
$cmd .= "y<-c(5,4,3,2,1);";
$cmd .= 'jpeg("C:/temp.jpg");';
$cmd .= "plot(x,y);";
$cmd .= "dev.off()";

system($path_to_r . " -e '" . $cmd . "'");
my$path_to_r=“C:/Program Files/r/bin/Rscript.exe”;

my$cmd=“x对于统计数据R::0.27,我的$cmd=“x效果很好,但是对于0.08,它不是我可以在Active perl的软件包管理器中找到的唯一版本。为了安装0.27,我必须使用
cpan
命令行。Make-test失败,但是Make-install很好。这有点节约了生命

(顺便说一句,我是一个相对的noob。不过,使用
cpan
命令行非常简单。
cpan
命令行键入
i/Statistics-R/
,然后
安装FANGLY/Statistics-R-0.27.tar.gz(或任何相关文件。我使用的是windows系统,所以RSPerl对我来说不是一个选项。我注意到最新的Statistics::R版本是2012年3月发布的,所以可能是以前记录的一些(管道?)问题已经解决。您可能还需要安装一个“maker”;在我的例子中,它是“dmake”,而不是“nmake”。非常简单,您可以从M$website获得make的一个版本,并将该+.err文件复制到PERL\bin dir中。但在其他地方可以获得这方面的帮助。希望这能有所帮助!)

尝试使用
Cairo包(例如
CairoJPEG()
),内置函数(如
jpeg
)可能取决于您运行它的后端,因此某些功能可能在R GUI中可用,但在嵌入时不可用(我没有检查此实例,但Cairo可以在不考虑后端的情况下工作)。我运行了您提供的Perl代码(同时启用
strict
警告
)我从以前的经验中知道,
Statistics::R
以前在将图形写入图像时遇到问题(或者至少在我的系统上遇到过)。请确保您的
Statistics::R
版本是最新的。使用ActiveState,我相信我的版本限制为0.08。请尝试使用。这是Windows的高级Perl安装。Ryan,仅供参考,是Perl,不是Perl。同意。这就是我最终要做的。我无法让草莓Perl正常工作;有太多的依赖关系中断s
   $R = Statistics::R->new();
   $R->start_sharedR
   $R->send("x<-c(1,2,3,4,5)");
   $R->send("y<-c(5,4,3,2,1)");
   $R->send('jpeg("C:/temp.jpg")');
   $R->send("plot(x,y)");
   $R->send("dev.off()");
my $path_to_r = "C:/Program Files/R/bin/Rscript.exe";

my $cmd = "x<-c(1,2,3,4,5);";
$cmd .= "y<-c(5,4,3,2,1);";
$cmd .= 'jpeg("C:/temp.jpg");';
$cmd .= "plot(x,y);";
$cmd .= "dev.off()";

system($path_to_r . " -e '" . $cmd . "'");