0

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

不使用“行”的解决方法或方法也值得赞赏。

没有错误消息,但不会显示我要求的行(请参阅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 代码吗?两个提示:

  1. rpy2 生成的图和 R 图显示出截然不同的曲线形状。可能有什么需要调查的?

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

代码:

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