0

同じプロットに3つのグラフを表示しようとする次の簡単なコードがあります。「線」関数で要求する最後の2つのグラフは表示されず、私は気が遠くなります。これはバグですか、それとも私は愚かなことをしていますか?

回避策、または「行」を使用せずにこれを行う方法も高く評価されています。

エラーメッセージは表示されませんが、要求された行は表示されません(以下のr.lines()呼び出しを参照)。

from rpy2.robjects import r
from rpy2.robjects.packages import importr
grdevices = importr('grDevices')

d = {0: {0: 5669, 800: 1001, 100: 2240, 200: 1606, 300: 1366, 400: 1236, 500: 1146, 600: 1083, 900: 964, 700: 1037}, 10: {0: 0, 800: 155, 100: 229, 200: 218, 300: 194, 400: 178, 500: 171, 600: 165, 900: 150, 700: 160}, 5: {0: 0, 800: 195, 100: 415, 200: 330, 300: 279, 400: 258, 500: 241, 600: 219, 900: 185, 700: 201}}
x = range(0,1000,100)
y = [d[0][i] for i in x]
z = [d[5][i] for i in x]
ae  = [d[10][i] for i in x]

#grdevices.pdf(file = 'reads_per_slackvalue_and_cluster_size.pdf')

r.plot(x,y, main='Reads per slack value', xlab='slack value',ylab='number of reads', type='l', col='blue')
r.lines(x, z, col='red')
r.lines(x, ae, col='green')

#r.legend("topleft", ['0','5','10'], ['blue','red','green'])

#grdevices.dev_off()

show_image = raw_input()

結果は次のとおりです。

ここに画像の説明を入力してください

これは私がRでインタラクティブに同じことをすることです(より正確です):

ここに画像の説明を入力してください

4

1 に答える 1

1

rpy2コードについてよろしいですか?2つのヒント:

  1. rpy2で生成されたプロットとRプロットは、かなり異なる曲線形状を示しています。調査するものかもしれませんか?

  2. コードに追加された以下の2行は、2行目になります。x座標とy座標がプロット領域内にあることを確認する価値があります。

コード:

from rpy2.robjects.vectors import IntVector
r.lines(x, IntVector(y) - 500, col = "green")
于 2012-10-24T12:34:33.913 に答える