2013-07-06 136 views
8

看起來很簡單,但我無法在pandas DataFrame中用「點」繪製X-Y圖表。 我想顯示subid在X Y Chart上的「標記」,其中X爲年齡,Y爲fdgPandas simple X Y plot

代碼到目前爲止

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

回答

9

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文檔。

+0

謝謝你的答案。但是如何將「subid」的名稱加上點。 – LonelySoul

+1

http://stackoverflow.com/questions/15910019/annotate-data-points-while-plotting-from-pandas-dataframe/15911372#15911372 –

+0

@DanAllan不幸的是它說「繪製」沒有定義。它屬於哪個模塊... – LonelySoul

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() 
相關問題