如何在Rpy2中使用数据库中的数据进行绘图?

时间:2012-08-20 05:31:19

标签: python r plot rpy2

数据存储在名为“data”的数据库中,其中包含两个颜色“月”和“流量”。该表如下所示:

+-----------+---------+
| month     | traffic |
+-----------+---------+
| January   |    1000 |
| February  |     100 |
| March     |   10430 |
| April     |    1500 |
| May       |     100 |
| June      |    1200 |
| July      |     800 |
| August    |    8000 |
| September |  100000 |
+-----------+---------+

现在我使用python从数据库中提取了数据。我希望使用这些数据进行绘图。这是我的代码:

#usr/bin/python

import MySQLdb as mdb
import rpy2.robjects as robjects
r = robjects.r

def database():
    """Retrieves the data from the database"""

    #Database Connection
    con = mdb.connect('localhost', 'root', 'devil', 'data');

    with con:
        #Submit statements to SQL server
        cursor = con.cursor()       
        cursor.execute("SELECT * FROM traffic")

        #Retrieves data from SQL
        rows = cursor.fetchall()  
        for row in rows:
            row = list(row)
            x = row[1:]
            y = row[:-1]
            r.plot(x, y)


database()

我想使用变量x和y进行绘图。 r.plot(x,y)不起作用。这是错误:

 res = super(Function, self).__call__(*new_args, **new_kwargs)
rpy2.rinterface.RRuntimeError: Error in plot.window(...) : need finite 'ylim' values

我如何策划?

1 个答案:

答案 0 :(得分:0)

忘记循环。看看'行'是什么。它是数据库行值的元组列表。大概。打印出来并向我们展示“行”是什么。

然后你只需要将这些元组解包到列表x和y中,将月份映射到整数或者可能是有序因子,然后调用r.plot(x,y)。