2013-01-10 18 views
18

Được cung cấp:Tôi có thể vẽ biểu đồ trong gấu trúc bằng cách sử dụng các giá trị danh nghĩa như thế nào?

ser = Series(['one', 'two', 'three', 'two', 'two']) 

Làm cách nào để vẽ biểu đồ cơ bản của các giá trị này?

Dưới đây là một phiên bản ASCII của những gì tôi muốn nhìn thấy trong matplotlib:

 X 
X X X 
------------- 
one two three 

Tôi mệt mỏi của cái thấy:

TypeError: cannot concatenate 'str' and 'float' objects 

Trả lời

41

Bạn có thể sử dụng phương pháp value_counts:

In [10]: ser.value_counts() 
Out[10]: 
two  3 
one  1 
three 1 

và sau đó plot this as a bar chart:

ser.value_counts().plot(kind='bar') 

Chỉnh sửa: Tôi nhận thấy rằng điều này không giữ được thứ tự mong muốn. Nếu bạn có một danh sách/Series cho đặt hàng này (trong trường hợp này ser[:3] sẽ làm), bạn có thể reindex trước âm mưu:

In [12]: ser.value_counts().reindex(ser[:3]) 
Out[12]: 
one  1 
two  3 
three 1 
+3

Đó là chính xác những gì tôi đang tìm kiếm. Cảm ơn nhiều! –

+1

Cách khác là sử dụng [seaborn] (https://stanford.edu/~mwaskom/software/seaborn/generated/seaborn.countplot.html) 'countplot'. – Romain

Các vấn đề liên quan