2013-07-06 28 views
8

Wygląda prosto, ale nie jestem w stanie narysować wykresu X-Y z "kropkami" w pandach DataFrame. Chcę pokazać subid jako "Mark" na X Y Chart z X jako wiek i Y jako fdg.Panda prosta X-działka

Kod dotychczas

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

Odpowiedz

9

df.plot() zaakceptuje matplotlib kwargs. Zobacz 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

Czytając ponownie pytanie, myślę, że może być w rzeczywistości prośbą o rozrzutu.

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

Spójrz na dokumentację matplotlib.

+0

Dzięki za odpowiedź. Jednak jak umieścić nazwę "subid" z kropkami. – LonelySoul

+1

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

+0

@DanAllan niestety mówi "Rysuj" nie definiuj. Do jakiego modułu należy ... – LonelySoul

1

Spróbuj wykonać następujące czynności, aby uzyskać diagram rozrzutu.

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()