【數據可視化】一、分析歷年電影票房(數據讀取、過濾、分類、繪圖)

本次案例主要用到numpy,pandas和matplotlib。期中pandas中的groupby分組方法較為重要,matplotlib中可以對畫圖進行更詳細的設置,比如設置x、y軸刻度、折線寬度和樣式以及顏色等等。

如圖部分所示,這是一個關於對歷年電影的數據,期中包括電影名稱,年份、導演、票房收入等等。

 

(1)讀取文件、處理預設值

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import matplotlib
 #讀取數據
data = pd.read_csv('movie_metadata.csv')
print(data.head())#讀取數據前五行
print(data.shape)#列印數據的形狀
效果如圖所示,可以看到第4行有出現一些空值,這對我們做分局分析是不利的,接下來還需對數據中的空值做處理,清洗。:

#處理預設值,把一些空值進行濾除
data = data.dropna(how = 'any')
print(data.head())         

(2)統計、分組

#查看票房收入統計
group_director= data.groupby('director_name')['gross'].sum()#根據director_name進行分組,然後求gross列的和

#print(group_director.head())

#排列
result = group_director.sort_values(ascending=False)#按照降序方法進行排列
print(result)
#sort_values函數參數使用:
#ascending    是否按指定列的數組升序排列,默認為True,即升序排列
#inplace    是否用排序後的數據集替換原來的數據,默認為False,即不替換

效果如下,途中可以看出票房收入最高的是「Steven Spielberg(史蒂文·斯皮爾伯格)」,總的票房輸入是4.114233e+09。

(3)

#電影產量年份圖
movie_year = data.groupby('title_year')['movie_title'].count() #計算每年的電影產量
#print(movie_year.index.tolist())
#print(movie_year.values.tolist())

#為x、y坐標賦值
x = (movie_year.index.tolist()) #把index索引值拿出來作為x軸,也就是年份,以列表形式輸出。
y = movie_year.values.tolist()#把values值作為y軸,也就是每年的電影量的和。

#設置畫布格式
#plt.xticks(range(len(x),10))
plt.figure(figsize=(20,8),dpi = 80) #設置畫布大小為20,8,分析率為80.
my_font=matplotlib.font_manager.FontProperties(fname=r'C:\Windows\Fonts\simsun.ttc',size = 18)#設置字體

#設置坐標軸標籤
plt.xlabel('時間',fontproperties = my_font) #設置x軸標籤
plt.ylabel('電影量',fontproperties = my_font)#設置y軸標籤
plt.title('電影產量年份圖',fontproperties = my_font,color = 'red')#設置標題名稱
#繪製折線圖
plt.plot(x,y)
plt.show()

具體效果如下,

轉載於//blog.csdn.net/sl01224318/article/details/102244890?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-4