提问人:Joyfulgrind 提问时间:8/16/2012 最后编辑:Joyfulgrind 更新时间:8/17/2012 访问量:958
如何在 rpy2 中使用 python 中的变量?
How to use the variable from the python in rpy2?
问:
我的简单程序从 Python 中提取数据库并存储在变量行中。
cursor = con.cursor()
cursor.execute("SELECT * FROM traffic")
#Retrieves data from SQL
rows = cursor.fetchall()
for row in rows:
row = list(row)
a = row[1:]
b = row[:-1]
print(a)
print(b)
现在我能够像 [1000L] 一样获得列表 a 和 b 中的月份和流量
['January']
[100L]
['February']
[10430L]
['March']
[1500L]
['April']
[100L]
['May']
[1200L]
['June']
[800L]
['July']
[8000L]
['August']
[100000L]
['September']
现在我想用它来绘制、直方图和饼图。
该行包含两个列:和 。我想使用 Rpy2 将其转换为图表。我该怎么做?这是我的表格:MOnth
Traffic
month | traffic |
+-----------+---------+
| January | 1000 |
| February | 100 |
| March | 10430 |
| April | 1500 |
| May | 100 |
| June | 1200 |
| July | 800 |
| August | 8000 |
| September | 100000 |
+-----------+---------+
答:
1赞
Spacedman
8/16/2012
#1
首先,从数据库中列出两个列表。像这样:
cursor = con.cursor()
cursor.execute("SELECT * FROM traffic")
#Retrieves data from SQL
rows = cursor.fetchall()
Month = list()
Traffic = list()
for row in rows:
Month.append(row['Month']) # guesswork - what does a row look like?
Traffic.append(row['Traffic'])
然后,现在你有两个 python 列表,你可以这样绘制一个图:
>>> r.plot(Month,Traffic)
rpy2.rinterface.NULL
你可能想要线条:
>>> r.plot(Month,Traffic,type="l")
rpy2.rinterface.NULL
你可能想要漂亮的标签:
>>> r.plot(Month,Traffic,type="l",xlab="Month",ylab="Traffic")
评论
0赞
Joyfulgrind
8/16/2012
它是静态的。我知道该怎么做。我被困在 dyanimic 中。使用 Python 从数据库中提取数据并打印这些提取数据的图表。
0赞
Spacedman
8/16/2012
哼?所以真正的问题是“如何将数据库的列读入 python 列表?然后问那个。
0赞
Spacedman
8/16/2012
不,你想绘制它们。要绘制它们,您必须从从数据库中迭代获取的行对象创建 python 列表。虽然我们可以读取您的代码,但如果没有像您这样的数据库,我们就无法运行它。
0赞
Joyfulgrind
8/17/2012
我收到此错误:TypeError:元组索引必须是整数,而不是 str。我认为列表方法没有将元组(默认)转换为列表。我尝试做: 对于行中的行: row = list(row) a = row[1:] b = row[:-1] print(a) print(b) 有效但 r.plot(a, b) 不起作用
评论