0

数据存储在一个名为“data”的数据库中,其中包含“month”和“traffic”两列。该表如下所示:

+-----------+---------+
| 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 进行绘图,而 yrplot(x, y) 不起作用。这是错误:

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

我该如何绘图?

4

1 回答 1

0

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

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

于 2012-08-22T09:10:39.533 回答