用几行rpython2绘制图表 - 额外的行不会显示

时间:2012-10-24 08:46:17

标签: python r rpy2

我有以下简单的代码,试图在同一个图中显示三个图。我要求使用“线”功能的两个最后一个图表将不会显示,我在我的智慧结束。这是一个错误还是我做了一些愚蠢的事情?

解决方法,或者不使用“线”的方法也很受欢迎。

没有错误消息,但不会显示我要求的行(请参阅下面的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()

结果如下:

enter image description here

这就是我在R中以交互方式做同样的事情(更正确):

enter image description here

1 个答案:

答案 0 :(得分:1)

您确定rpy2代码吗?两个提示:

  1. rpy2产生的图和R图显示了相当不同的曲线形状。可能需要调查一下吗?

  2. 添加到代码中的下面两行确实是第二行。绝对值得检查您的x和y坐标绘图区域内。

  3. 代码:

    from rpy2.robjects.vectors import IntVector
    r.lines(x, IntVector(y) - 500, col = "green")