2002年〜2019年の国内興行収入1位作品の推移をグラフ化する

その買うを、もっとハッピーに。|ハピタス

2002年〜2019年(暫定)の国内興行収入1位の映画を棒グラフ化してみた。使用するデータがドルベースなので、当然円ベースとは若干の違いが生じるが、順位に違いはないので問題ないと思われる。1つ言えることは、宮崎駿監督は偉大であると言うことだろう。宮崎監督が良く行くと言われている新秋津駅近くの某パン屋(相田翔子やオコエでも有名)に頻繁にパンを買いに行っていたが、監督に出会ったことは一度もない。

スポンサーリンク

データの下準備

先ず、以下のサイトから日本国内の興行収入データをダウンロードする。

import pandas as pd
import requests

d=[]
for i,j in enumerate(range(2002,2004)):
    a = 'https://www.boxofficemojo.com/intl/japan/yearly/?yr={}&p=.htm'.format(j)
    df = pd.read_html(requests.get(a).content)
    df1 = df[2]
    df1.columns = ['順位','タイトル','興行収入','公開日']
    b = df1[['タイトル','興行収入']].iloc[1]
    d.append(b)
e=[]
for j in range(2004,2020):
    a = 'https://www.boxofficemojo.com/intl/japan/yearly/?yr={}&p=.htm'.format(j)
    df = pd.read_html(requests.get(a).content)
    df1 = df[2]
    df1.columns = ['順位','タイトル','配給会社','興行収入','公開日']
    b = df1[['タイトル','興行収入']].iloc[1]
    e.append(b)
df2 = pd.DataFrame(d)
df3 = pd.DataFrame(e)
df4 = pd.concat([df2,df3])
df4.to_csv('yearly_top_gross.csv', index=False)
import pandas as pd
import requests

df11 = pd.read_csv('yearly_top_gross.csv',encoding='utf-8')
df11['タイトル'][1] = 'Odoru daisosasen the movie 2'
df11['興行収入'] = df11['興行収入'].str.replace('$','').str.replace(',','')
df11['興行収入'] = df11['興行収入'].apply(pd.to_numeric, errors="coerce").astype(int)
years = list(range(2002,2020))
years = ",".join(map(str, years))
years = years.split(',')
スポンサーリンク

2002年〜2019年の興収トップ作品推移をプロット

from matplotlib.pyplot import *
from matplotlib.font_manager import FontProperties
from matplotlib import rcParams
import matplotlib.patches as mpatches
style.use('ggplot')

rcParams["font.size"] = "25"
rc('xtick', labelsize=25)
rc('ytick', labelsize=35)
fp = FontProperties(fname='/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf', size=54)
rcParams['font.family'] = fp.get_name()
fig, ax = subplots(figsize=(20,16))
df11.set_index('タイトル').plot(kind='barh',ax=ax,width=.9,color='pink');
xticks(np.arange(0,2.8e8,1e8/5),
   ['{}億'.format(float(x/1e9)) if x > 0 else 0 for x in np.arange(0,2.8e9,1e9/5)]);
for j,i in enumerate(ax.patches):
    ax.text((i.get_width()+1e6 if int(i.get_width()) < 1.5e8 else i.get_width()-1.05e8),\
     i.get_y()+.15,'{:,}{:,}{:,}ドル ({}年)'.format(int(str(i.get_width())[:-8]),\
       int(str(i.get_width())[-8:-4]),int(str(i.get_width())[-4:]),years[j]) \
 if int(i.get_width()) > 1e8 else '{:,}{:,}ドル ({}年)'.format(int(str\
  (i.get_width())[:-4]),int(str(i.get_width())[-4:]),years[j]),fontsize=30, color='k');

邦画では君の名は。がトップだが、実際には、2001年のSpirited Away (千と千尋の神隠し)が国内興行収入トップで、唯一、300億円の大台を超えている(308億円)。2002年〜2019年(暫定)の全18本の映画で、洋画は11本、邦画が7本となっている。1億ドルの大台を超えている映画に関して言えば、洋画が7本、邦画が5本で、そのうち3本(ハウルの動く城、崖の上のポニョ、風立ちぬ)は宮崎駿監督の作品である。他の2本は、新海誠監督の君の名は。と踊る大捜査線 THE MOVIE 2 レインボーブリッジを封鎖せよ!で、1億ドル超え作品の8割がアニメ作品というのが如何にも日本らしいと言えるだろう。2019年については、今の所は「名探偵コナン 紺青の拳」が暫定1位だが、最終的に、新海誠氏の期待の最新作である「Weathering with You (天気の子)」かディズニーの「Toy Story 4 (トイ・ストーリー4)」に抜かれると思われる。どっちも1億ドルを超えることが予想されている。面白いのは、公開日が、「トイ・ストーリー4」が7月12日で、「天気の子」が7月19日となっていることだ。

スポンサーリンク
スポンサーリンク