2013-05-13 16 views
57

Quando ho eseguito questo codiceMatplotlib trama è un no-show

import pandas as pd 
import numpy as np 
def add_prop(group): 
    births = group.births.astype(float) 
    group['prop'] = births/births.sum() 
    return group 

pieces = [] 
columns = ['name', 'sex', 'births'] 

for year in range(1880, 2012): 
    path = 'yob%d.txt' % year 
    frame = pd.read_csv(path, names = columns) 
    frame['year'] = year 
    pieces.append(frame) 
    names = pd.concat(pieces, ignore_index = True) 

total_births = names.pivot_table('births', rows = 'year', cols = 'sex', aggfunc = sum) 
total_births.plot(title = 'Total Births by sex and year') 

ottengo nessun complotto. Questo è tratto dal libro di Wes McKinney sull'uso di Python per l'analisi dei dati. Qualcuno può indicarmi la giusta direzione?

+2

Se stai usando ipython (! E si dovrebbe essere), è possibile utilizzare il flag pylab: 'ipython --pylab' –

+0

Grazie, Andy. Sono. – ncmathsadist

risposta

155

Mettere

import matplotlib.pyplot as plt 

in alto, e

plt.show() 

alla fine.

+0

Hai idea del perché questo accada? Va bene senza un computer, ma richiesto altrove –

+7

@NoelEvans: all'interno di una GUI come un notebook IPython, potrebbe non essere necessario chiamare 'plt.show()' a seconda di come è configurata la GUI. Se esegui lo script Python dalla riga di comando, dovresti chiamare 'plt.show()'. – unutbu

+0

Beh, quello si adatta a quello che sto vedendo –

29

Nel notebook IPython è possibile utilizzare anche %matplotlib inline nella parte superiore del notebook per visualizzare automaticamente i grafici creati nelle celle di output.

1

il codice è corretto. appena messo:

import matplotlib as plt 

per voi diplaying trama:

plt.show() 
Problemi correlati