例子:统计电影类型的个数,以及用bar绘制出来表示

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
#获取各种电影类型的数量
file='./IMDB-Movie-Data.csv'
data=pd.read_csv(file)
genre=data['Genre']
genre_list=genre.str.split(',').tolist()
#转为一维,转为集合去重,看有哪些条目
genre_set=set([i for item in genre_list for i in item])
print(genre_list)
#建立一个带有索引全为0的二维数组

inform=pd.DataFrame(np.zeros((data.shape[0],len(genre_set))),columns=list(genre_set)) #获取行数,列数,索引应该为list(列表)类型

#对data【Genre】一行一行的遍历
for i in range(data.shape[0]):
inform.loc[i,genre_list[i]]=1

#计算每一列的和
sum_genre=inform.sum(axis=0)
#排序
sum_sort=sum_genre.sort_values()
print(len(sum_sort))
#画图

plt.figure(figsize=(20,10))
x=range(len(genre_set))
y=sum_sort.values

bars=plt.bar(x,y)
x_label=sum_sort.index
plt.xticks(x,x_label,rotation=270)
plt.grid(alpha=0.3)

for i in bars:
height=i.get_height()
plt.text(i.get_x()+0.3,height,str(height),ha='center',va='bottom')
plt.xlabel('movie style',fontsize=20)
plt.ylabel('number')
plt.title('tongjitu')
plt.show()

 


posted @ 2018-11-11 16:05  spiderMan1-1  阅读(485)  评论(0编辑  收藏  举报