ggplot2 没有图形因为 ggsave 不保存
我有一个用Python写的脚本,使用了pyper这个库(它可以和R语言进行连接),我想从ggplot2中获取一些输出。我尝试了'ggsave'方法和'device(...); dev.off()'方法,但都没有任何输出。
我必须使用pyper,因为我在各个地方都使用64位的环境(包括Python和R),所以rpy[2]对我来说不是一个选择。
我的代码大致是这样的:
r("png(filename='test.png',width=720,height=540)") #comment if ggsave
r("p<-ggplot(DB,aes(X,Y,group=cfg))")
r("""p <- p + geom_path(aes(colour=factor(f1))) + scale_x_log10('X label') +
scale_y_continuous('Y label',breaks=myb,labels=myl) +
geom_point(data=subset(DB,pts==dot),aes(colour=factor(f1),size=factor(f2),
shape=factor(f3))) + labs(colour='l1',size='l2',shape='l3')""")
r("print(p)")
# r("ggsave(filename='test.png',width=10,height=7.5) #comment out if using png
r("dev.off()") # comment if using ggsave
无论哪种方法都没有生成文件。我已经检查过数据库的数据表,里面有很多条记录(上千条)。我该尝试什么呢?
1 个回答
2
这其实是一个关于库和环境变量的问题。有些加载的库,比如ggplot2,并没有加载所有需要的依赖库,比如digest库。这个错误只会在代码的“print(p)”那部分出现。
另外,x64库的位置也有一些差异,需要正确设置。确保你的R_HOME和R_LIBS变量与你的配置相匹配。
Pyper似乎没有告诉我哪些库没有加载,它只是继续运行,所以qplot在R中最开始并没有加载。把它放到正确的位置后,你需要确保总是使用你的用户账户或者管理员账户(或者你可以在R_LIBS中设置多个路径,但我没有尝试过)。
只要库加载正确,qplot和ggsave就能正常工作。
感谢所有努力工作的人和调试的指导!