Как отобразить изображение с помощью wxpython и rpy2?
Поэтому я пытаюсь отобразить сгенерированное изображение R при использовании wxpython и rpy2...
Полный 131-строчный код находится здесь... https://gist.github.com/ACollectionOfAtoms/4286c0fc32838b03f2ea
Таким образом, в рамках программы пользователь приходит к точке, где он представляет собой окно, сгенерированное lst_view, которое имеет две кнопки "Ок" и "Визуализация". После нажатия 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())
}
Это не сразу генерирует график, вместо этого оно вызывает новое меню, и изображение отображается только в том случае, если я перехожу к "Параметры страницы"....
Есть идеи?!
1 ответ
Хорошо, благодаря unutbu я смог понять это!
Вначале я хотел сохранить изображение, а затем визуализировать его с помощью wx, но у меня были проблемы с использованием dev.off() и т.п. через rpy2!
НО! unutbu предоставил ссылку и спас мне массу неприятностей. вы можете использовать ggsave(), чтобы полностью обойти весь jpeg ('this.jpg'); dev.off(); бизнес!
Еще раз спасибо, unutbu. Теперь я просто сделаю это с WX без проблем!