2017-01-03 2 views
1

からjupyterのrpy2まで、Rオブジェクトを使用してPythonから直接データをプロットすることができます。どうすればPythonでpar(mfrow=c(1,2)を設定できますか?pythonでmfrow/mfcolを設定する方法

例えば、私は自動的にPythonから可変サイズの行列を送り、rpy2を使ってそれを(他の統計解析の中でも)プロットしたいと思います。しかし、単一のボックスプロットをプロットするのではなく、それらのすべてを出力したい。

ここではいくつかのサンプルコードが

import rpy2.ipython 
import rpy2.robjects as ro 
import scipy as sp 
import re #python for regex 
from rpy2.robjects.packages import importr 
rpy2.robjects.numpy2ri.activate() 
%load_ext rpy2.ipython 
%R 

test=[[1,3,2],[6,5,7,8,9]] 

def funtoanalyze(grouparray): 
    a={} 
    data=numpy.array(test) 
    for ig in range(len(grouparray)): 
     key=grouparray[ig] 
     value=data[ig] 
     a[key]=value 
     next 
    rbox=ro.r('boxplot') 
    for gro in a:  
     datar=a[gro] 
     ro.r('dev.new()') 
     rbox(ro.FloatVector(datar[:]),xlab="",main=gro) 
    return 

funtoanalyze(["group33","group2"]) #only plots last group 

enter image description here

答えて

1

%load_ext rpy2.ipythonのご利用には、あなたがjupyterノートブックであなたの姿を持つようにしたいことを示唆しています。

Rはグラフィックデバイスを使用して図を出力し、par(mfrow=c(...))を呼び出すと、その設定が開いているグラフィカルデバイスに表示されるか、新しいデフォルトデバイスが開き、パラメータが設定されます。

「マジック」%%Rは、デフォルトのデバイスで数字が生成されてノートブックに表示されている場合にスキャンしています。次の作業をする必要があります:あなたがRの魔法を使用したくない場合は、rpy2でjupyterノートブックのための他のユーティリティがある

%%R 

par(mfrow=c(1,2)) 
plot(0, 0) 
plot(0, 0) 

。作図のためにコンテキストマネージャがあります(https://bitbucket.org/rpy2/rpy2/issues/330/ipython-plotting-wrapper - 詳細なドキュメントがあるかどうかは分かりません)が、最も高度なユーティリティはggplot2に合わせています。 https://lgautier.github.io/odsc-ppda-slides/#/5/13

フルノートはここにある:

https://github.com/lgautier/pragmatic-polyglot-data-analysis

https://github.com/lgautier/odsc-ppda-slides/blob/master/notebooks/slides.ipynb

は、ノートブックを実行するために必要なすべてのものとのドッキングウィンドウのコンテナ輸送があり、たとえば、このスライドと次のようなものをチェックしてください

+0

@lgautierにお返事ありがとうございます。確かに、私はジュピターを使用しています。私は '%% R'を避けることを望んでいました。なぜなら、私はまだデータの入出力方法を学んでいるからです。 robjectsを使ってそれを行う方法が分かっていれば、答えに追加することができればうれしいです(ただし、 '%% R'部分は削除しないでください) – Sosi

+0

ノートブックに'%% %R'。 – lgautier

+0

ありがとうございます@ lgautier! – Sosi

関連する問題