【matplotlib】 Python で折れ線グラフを描く方法。
今回は、Python の matplotlib というライブラリを使って簡単に折れ線グラフを描く方法を紹介します。
matplotlib では「Figure」と「Axes」オブジェクトが主要になります。1番上の層が Figure で、Figure オブジェクト上に複数の Axes オブジェクトを使ってグラフをプロットしていくイメージになります。
今回は、映画データを使って、年間の映画制作費の中央値を年ごとにプロットしていく折れ線グラフを作ります。
jupyter を使ってブラウザ上に直接描画させました。
Contents
データ準備
まず、データを読み込みます。
1 2 3 |
import pandas as pd movie = pd.read_csv('data/movie.csv') movie |
次に、年ごとの映画制作費の中央値を求めます。
1 2 |
med = movie.groupby('title_year')['budget'].median() / 1e6 med |
映画制作費は「1e6」で割って桁数を落としています。
以下のように、Series 型で返ります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
title_year 1916.0 0.385907 1920.0 0.100000 1925.0 0.245000 1927.0 6.000000 1929.0 0.379000 ... 2012.0 17.000000 2013.0 20.000000 2014.0 15.000000 2015.0 14.400000 2016.0 22.500000 Name: budget, Length: 91, dtype: float64 |
横軸と縦軸のデータをそれぞれ array 型で取得します。
横軸は「年」になります。
1 2 |
years = med.index.values years |
1 2 3 4 5 6 7 8 9 10 11 |
array([1916., 1920., 1925., 1927., 1929., 1930., 1932., 1933., 1934., 1935., 1936., 1937., 1938., 1939., 1940., 1941., 1942., 1943., 1944., 1945., 1946., 1947., 1948., 1949., 1950., 1951., 1952., 1953., 1954., 1955., 1956., 1957., 1958., 1959., 1960., 1961., 1962., 1963., 1964., 1965., 1966., 1967., 1968., 1969., 1970., 1971., 1972., 1973., 1974., 1975., 1976., 1977., 1978., 1979., 1980., 1981., 1982., 1983., 1984., 1985., 1986., 1987., 1988., 1989., 1990., 1991., 1992., 1993., 1994., 1995., 1996., 1997., 1998., 1999., 2000., 2001., 2002., 2003., 2004., 2005., 2006., 2007., 2008., 2009., 2010., 2011., 2012., 2013., 2014., 2015., 2016.]) |
縦軸は「映画制作費」になります。
1 2 |
budget = med.values budget |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
array([ 0.385907 , 0.1 , 0.245 , 6. , 0.379 , 3.95 , 0.8 , 0.3195 , 0.325 , 0.609 , 1.35 , 2. , 1.822368 , 2.8 , 1.947 , 1.25 , 0.95 , 2.627 , 2.361 , 1.696377 , 3.18 , 2.3 , 3.35 , 1.3 , 3.768785 , 2.295429 , 2.5408 , 1.45 , 3.5 , 1.2 , 4. , 1.675 , 3. , 3.5 , 3. , 3. , 2. , 3.3432925, 2.4 , 8.2 , 2. , 3.5 , 2.5 , 6. , 7.358473 , 2.5 , 1.7 , 4.638783 , 2.7 , 4.7 , 4.1 , 10. , 11. , 11.5 , 10. , 10. , 10.85 , 12. , 12.5 , 12.305523 , 14.4 , 13. , 11.5 , 14.5 , 25.5 , 20. , 25. , 15. , 25. , 28. , 26. , 30. , 24.5 , 22. , 24. , 26. , 20. , 24.5 , 25. , 25. , 19.4 , 20. , 25. , 18.965 , 20. , 23.5 , 17. , 20. , 15. , 14.4 , 22.5 ]) |
デフォルトの折れ線グラフ描画
Figure と Axes オブジェクトを取得し、Axes オブジェクトにプロットしていきます。
1 2 |
fig, ax = plt.subplots(nrows=1, ncols=1) ax.plot(years, budget) |
以下のように折れ線グラフが描画できました。
1番シンプルな折れ線グラフが簡単に描画できましたが、もう少し見やすくしていきます。
グラフのサイズを指定
figsize を変更してグラフの横幅を広げてみます。
1 2 |
fig, ax = plt.subplots(figsize=(14,4), nrows=1, ncols=1) ax.plot(years, budget) |
描画の線を破線に変更
linestyle を指定して描画線の種類を変えていきます。グラフを重ねたりするときに見やすいですよね。
今回は線のスタイルを記号で指定しました。記号の方が文字より直感的に分かるので使いやすそうだと感じました。
「linestyle=’–‘」とすると破線になります。
1 2 |
fig, ax = plt.subplots(figsize=(14,4), nrows=1, ncols=1) ax.plot(years, budget, linestyle='--') |
さらに細かい破線にしてみます。
「linestyle=’:’」とすると細かくなります。
1 2 |
fig, ax = plt.subplots(figsize=(14,4), nrows=1, ncols=1) ax.plot(years, budget, linestyle=':') |
横軸・縦軸にラベルを付ける
「set_xlabel」「set_ylabel」を指定して横軸と縦軸にラベルを付けます。ちなみに、ラベルに日本語を指定すると文字化けしました。
1 2 3 4 |
fig, ax = plt.subplots(figsize=(14,4), nrows=1, ncols=1) ax.plot(years, budget) ax.set_xlabel('Median Movie Budget', fontsize=20) ax.set_ylabel('Millions of Dollars', fontsize=20) |
参考書籍
関連記事
-
【Python】漢字を分解するライブラリを使ってみた【部首分解】
Python で漢字を部首やさらに細かい部分に分解してくれるライブラリがあったので使ってみました。
-
【Pandas】 loc・ilocで1行のみ Series ではなく DataFrame で抽出する方法。
Python の Pandas で DataFrame から loc や iloc を使って行を抽出
-
【Python】機械学習のために SciPy・Matplotlib・scikit-learn をインストール。
Python で機械学習を行うために、Windows OS の python 2 系にライブラリ「S
-
【Google Colaboratory】クラウド上でPythonを使って機械学習を行う。
Python をブラウザ上で実行して、手軽に機械学習ができる環境「Google Colaborato
-
【Python】プログレスバーを表示させる【tqdm】
Python でスクリプトの実行時間が長くなると、進捗状況が知りたくなったので、標準出力にどのくらい
-
【Python】Windows で ライブラリ(NumPy) をインストールする方法。
Windows の Python(2.X系)で NumPy をインストールしようと思ったら、そもそも
-
【Python】時系列データ(為替データ)をグラフ表示してみた。
今回は、pandas・matplotlib ライブラリを使って、時系列データ(為替データ)をグラフ表
-
【Pandas】 DetaFrame の列ごとに演算する方法【Python】
今回は、DetaFrame の列ごとに平均や加算・減算なのど演算をし、結果を DetaFrame 型
-
【Anaconda】Prompt 上で Git コマンドを実行する方法。
Anaconda のコマンドプロンプト(Anaconda Prompt)上で、Git Hub からダ
-
【Python】 複数の辞書型の同じ key を持つ value を計算に用いる方法。
Python で、複数の辞書型を読み込んで、同じキー(key)を持つ数値(value)を計算に使う方