web-dev-qa-db-ja.com

PythonスクリプトでRを使用してチャートを作成するための他のオプションとPlumbrを比較する

pythonスクリプトでggplotを使用してチャートを作成する予定です。プロジェクトの詳細は次のとおりです。

  • リモートマシンで実行するスクリプトがあり、マシンに適切な範囲で何でもインストールできます

  • スクリプトはpythonで実行され、視覚化したいデータが辞書として保存されています

  • スクリプトは毎日実行され、データは常に同じ構造です

私の最善の策はこれを行うことだと思います...

  • データを取得してggplot視覚化を作成するRスクリプトを作成する

  • plumbr を使用して、スクリプトのREST APIを作成します

  • REST APIへの呼び出しを送信し、代わりにプロットのPNGを取得します

ggpy by yhatにも精通しており、Rをマシンにインストールして、コードをマシンに直接送信して、RStudioがなくてもコードを処理できるかどうかさえ疑問に思っています。

Plumbrは推奨される安全な実装でしょうか?

これは再現可能な例です

my_data = [{"Chicago": "30"} {"New York": "50"}], [{"Cincinatti": "70"}, {"Green Bay": "95"}] 

**{this is the part that's missing}**

library(ggplot)
my_data %>% ggplot(aes(city_name, value)) + geom_col()

png("my_bar_chart.png", my_data)
7
Cauder

コメントで述べたように、あなたの質問のほとんどはここで答えられるべきです: RをPython Rpy2で使用する:ggplot2への方法?

あなたはggplotを次のようにロードできます:

_import rpy2.robjects.packages as packages
import rpy2.robjects.lib.ggplot2 as ggp2
_

もちろん、あなたはggplot2 +依存関係が利用できると仮定します。

その後、すべてのコマンドの前に_ggp2._を置くことを除いて、ほとんどR構文を使用できます。

例:Python ggplot(mtcars)の同値はggp2.ggplot(mtcars)になります。

あなたの例:(テストされていません)

_my_data = [{"Chicago": "30"} {"New York": "50"}], [{"Cincinatti": "70"}, {"Green Bay": "95"}] 

import rpy2.robjects.packages as packages
import rpy2.robjects.lib.ggp2 as ggp2

plot = ggp2.ggplot(my_data) + 
  ggp2.aes(city_name, value)) + 
  ggp2.geom_col()

plot.plot()

R("dev.copy(png, 'my_data.png')")
_
5
Tonio Liebrand