2013-05-13 9 views
57

Khi tôi chạy mã nàyMatplotlib cốt truyện là một 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') 

tôi nhận được không có cốt truyện. Đây là cuốn sách của Wes McKinney về cách sử dụng Python để phân tích dữ liệu. Có ai có thể chỉ cho tôi đúng hướng không?

+2

Nếu bạn đang sử dụng ipython (! Và bạn sẽ có), bạn có thể sử dụng cờ pylab: 'ipython --pylab' –

+0

Cảm ơn, Andy. Tôi là. – ncmathsadist

Trả lời

155

Đặt

import matplotlib.pyplot as plt 

ở phía trên, và

plt.show() 

ở cuối.

+0

Bạn có biết tại sao điều này xảy ra không? Đó là tốt mà không có trên một máy tính, nhưng yêu cầu ở nơi khác –

+7

@NoelEvans: Bên trong một GUI như một máy tính xách tay IPython, bạn có thể không cần phải gọi 'plt.show()' tùy thuộc vào cách GUI được cấu hình. Nếu bạn chạy tập lệnh Python từ dòng lệnh, thì bạn sẽ phải gọi 'plt.show()'. – unutbu

+0

Cũng phù hợp với những gì tôi thấy –

29

Trong sổ ghi chép IPython bạn cũng có thể sử dụng %matplotlib inline ở đầu sổ ghi chép để tự động hiển thị ô đã tạo trong ô đầu ra.

1

mã của bạn là chính xác. chỉ cần đặt:

import matplotlib as plt 

cho cho hiển thị bạn cốt truyện:

plt.show()