如何使用wxpython和rpy2显示图像?

如何使用wxpython和rpy2显示图像?,python,r,wxpython,visualization,rpy2,Python,R,Wxpython,Visualization,Rpy2,所以我尝试在使用wxpython和rpy2时显示R生成的图像 完整的131行代码在这里 因此,在程序中,用户会看到一个由lst_视图生成的窗口,它有两个按钮“Ok”和“Visualize”。按下Visualize后,将执行此代码 def graph(self,event): f = open('results.csv', 'wb') csvwriter = csv.writer(f) for i in self.res: for j in rang

所以我尝试在使用wxpython和rpy2时显示R生成的图像

完整的131行代码在这里

因此,在程序中,用户会看到一个由lst_视图生成的窗口,它有两个按钮“Ok”和“Visualize”。按下Visualize后,将执行此代码

    def graph(self,event):
    f = open('results.csv', 'wb')
    csvwriter = csv.writer(f)
    for i in self.res:
        for j in range(1,len(i)):
            row = [i[0] ,str(i[j])]
            csvwriter.writerow(row)
    f.close()


    r = robjects.r
    r('''
            source('vis.r')
    ''')
    r_main = robjects.globalenv['main']
    r_main()
    return True
在vis.r中,我们有:

graph <- function() {
  res = read.csv("results.csv", header=FALSE)
  res = mutate(res, Percent = 100*(V2/(sum(res$V2))))
  ggplot(data=res, aes(x=V1, y=V2, fill=Percent)) + geom_bar(stat="identity") + coord_flip() + xlab('Facility') + ylab('Number Of Violations')
}
main <- function(){
  print(graph())
}
graph好吧,多亏了我才弄明白这一点

基本上,我最初想保存图像,然后用wx将其可视化,但我在使用dev.off()和rpy2时遇到了问题

但是!unutbu提供了一个链接,为我省去了很多麻烦可以使用ggsave()完全绕过整个jpeg('this.jpg');dev.off();生意


再次感谢你,unutbu。现在我就用wx渲染它没问题

我也不会介意对替代方案的建议!也许,然后。我最初想这样做,但我认为在脚本中执行dev.off()是行不通的,在python中也失败了。我还花了一些时间来摆弄dev.set(它=1)或2或3,我也不能这样做!也许我做得不对……哦哦哦。非常感谢你的链接。现在我来回答我自己的问题。文档中有一个示例演示了如何使用(和关闭)图形设备:是的,我以各种方式尝试了文档中提到的grdevices.dev_off()方法,但由于某种原因,我始终无法正确地执行。很可能是我的错,但正如我所说,ggsave真的很好,所以你不必考虑你使用的是哪台设备以及要停用的设备等等。