熊猫简单X Y情节

时间:2013-07-06 20:18:40

标签: python-2.7 plot pandas

看起来很简单,但我无法在pandas DataFrame中绘制带有“点”的X-Y图表。 我想在X Y图表上将 subid 显示为“Mark”,其中X为年龄,Y为 fdg

到目前为止

代码

mydata = [{'subid': 'B14-111', 'age': 75, 'fdg': 3}, {'subid': 'B14-112', 'age': 22, 'fdg': 2}, {'subid': 'B14-112', 'age': 40, 'fdg': 5}]

df = pandas.DataFrame(mydata)

DataFrame.plot(df,x="age",y="fdg")

show()

enter image description here

2 个答案:

答案 0 :(得分:13)

df.plot()将接受matplotlib kwargs。请参阅docs

mydata = [{'subid': 'B14-111', 'age': 75, 'fdg': 3}, {'subid': 'B14-112', 'age': 22, 
           'fdg': 2}, {'subid': 'B14-112', 'age': 40, 'fdg': 5}]

df = pandas.DataFrame(mydata)
df = df.sort(['age'])  # dict doesn't preserve order
df.plot(x='age', y='fdg', marker='.')

enter image description here

再次阅读你的问题,我想你可能真的要求散点图。

import matplotlib.pyplot as plt
plt.scatter(df['age'], df['fdg'])

查看matplotlib文档。

答案 1 :(得分:1)

请尝试以下散点图。

import pandas
from matplotlib import pyplot as plt

mydata = [{'subid': 'B14-111', 'age': 75, 'fdg': 3}, {'subid': 'B14-112', 'age': 22, 
           'fdg': 2}, {'subid': 'B14-112', 'age': 40, 'fdg': 5}]

df = pandas.DataFrame(mydata)
x,y = [],[]

x.append (df.age)
y.append (df.fdg)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(y,x,'o-')
plt.show()