2014-10-07 19 views
5

Hãy nói rằng tôi có bảng pivot sau (đây là một trong những tạo ra trong the documentation):Vẽ từ Pivot Table sử dụng Pandas

In [8]: tuples = list(zip(*[['bar', 'bar', 'baz', 'baz', 
...:     'foo', 'foo', 'qux', 'qux'], 
...:    ['one', 'two', 'one', 'two', 
...:     'one', 'two', 'one', 'two']])) 
...: 

In [9]: index = MultiIndex.from_tuples(tuples, names=['first', 'second']) 

In [10]: df = DataFrame(randn(8, 2), index=index, columns=['A', 'B']) 

In [11]: df2 = df[:4] 

In [12]: df2 
Out[12]: 
        A   B 
first second      
bar one  0.721555 -0.706771 
     two -1.039575 0.271860 
baz one -0.424972 0.567020 
     two  0.276232 -1.087401 

Làm thế nào tôi có thể sử dụng bảng này để vẽ cả 'bar' và 'baz 'trên cùng một âm mưu với các trục (thứ hai, A) (tức là tôi muốn tạo một âm mưu với các điểm (một, 0,72), (hai, -1,039), (một, -0,42), (hai, 0,276), trong đó hai điểm đầu tiên được vẽ bằng một màu khác với hai màu sau).

tôi đã cố gắng sử dụng

df2[[0]].plot() 

nhưng điều này âm mưu các điểm liên tục trên trục x để họ được sắp xếp ((quầy bar, một), 0,721), ((quầy bar, hai), -1,039), vv, thay vì có hai 'một' điểm và hai 'hai' điểm chia sẻ một trục thẳng đứng.

Trả lời

4

Ok, tôi đã tìm ra. Khóa đã giải nén dữ liệu trước tiên:

import matplotlib.pyplot as plt 

t=df2.unstack(level=0) 
plt.plot(t[[0]], color='red') 
plt.plot(t[[1]], color='blue') 
plt.xticks(range(2), ['one','two'], size='small') 

plt.show() 
Các vấn đề liên quan