數據可視化—使用matplotlib分析歷年電影產量和票房

      最近還有在學數據可視化相關知識,今天和大家分享一個案例來看下效果。

      如圖部分所示,這是一個關於對歷年電影的數據,期中包括電影名稱,年份、導演、票房收入等等。那麼我接下來要做的分爲2部分:第一部分獲取所有導演所導演的電影票房總的收入,並做個排名,這樣就可以知道那些是真大佬。第二部分:分析歷年的電影總量的走勢並生成直方圖。

     

     一、對導演導演的電影票房做比較,效果如下:

   

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())                                                                                                                     

效果如圖所示,通過該方法會把數據中的空值濾除,大家可以坐下對比:

  接下來就是獲取票房收入了,這裏我們使用pandas中的grouby進行分組,

#查看票房收入統計
group_director= data.groupby('director_name')['gross'].sum()#根據director_name進行分組,然後求gross列的和
#print(group_director.head())
result = group_director.sort_values(ascending=False)#按照降序方法進行排列
print(result)

效果如下,途中可以看出票房收入最高的是“Steven Spielberg(史蒂文·斯皮爾伯格)”,總的票房輸入是4.114233e+09,百度了下大概是4.114233*10^9。

  二、電影產量年份圖

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

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()

具體效果如下,從圖中可以看出電影在1990-2000年是一直增長的,相當於海賊王中的“大海賊時代”,近些年來電影產量成下滑趨勢,具體什麼原因就不得而知了。:

  總結:本次案例主要用到numpy,pandas和matplotlib。期中pandas中的groupby分組方法較爲重要,matplotlib中可以對畫圖進行更詳細的設置,比如設置x、y軸刻度、折線寬度和樣式以及顏色等等。在這裏就不和各位一一絮叨了。還有明天一天國慶就結束了,祝大家玩得嗨皮,嘎嘎!

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章