Как отобразить изображение с помощью 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 без проблем!

Другие вопросы по тегам