Up

折れ線グラフ

本ウェブサイトのプログラムは圧縮ファイルLinePrgs.zipにまとめられている。

 

東京都の人口推移(東京都のウェブサイトのデータ)を表1に示す。

 

表1 東京都の人口推移

1880

1900

1920

1940

1960

1980

2000

人口

959596

2014100

3699428

7354971

9683802

11618281

12064101

 

表1のデータを折れ線グラフで表すPythonプログラムを以下のように作成した。

なお、グラフの軸の目盛りの設定などの例は本ウェブサイトの後半に示した。

 

import matplotlib.pyplot as plt

import numpy as np

 

xdata = [1880, 1900, 1920, 1940, 1960, 1980, 2000]

"""          年: 横軸の値

"""

ydata = [959596, 2014100, 3699428, 7354971, 9683802, 11618281, 12064101]

"""          人口: 縦軸の値

"""

plt.plot(xdata, ydata, 'k-', linewidth = 3)

"""     折れ線の描画:  'k-' 黒実線

"""

plt.title('Transition of Population (Tokyo)\n', fontsize = 15)

"""        グラフのタイトルとフォントサイズ

"""

plt.xlabel('Year')

"""     横軸のタイトル

"""

plt.ylabel('Population')

"""     縦軸のタイトル

"""

plt.show()

"""     グラフの表示

"""

 

リストxdataに年の値を、リストydataに対応する年の人口を設定している。このxdataの値を横軸に、ydataの値を縦軸にとり、折れ線でつなぐことを関数

plt.plot(xdata, ydata, 'k-', linewidth = 3)

の呼び出しによって行っている。「'k-‘」の k は黒で線を描くことを指定し、マイナス記号 – は実線で繋ぐことを意味している。

色の指定は表2に示すような対応になっている。

 

表2 色の指定               

b

blue

g

green

r

red

c

cyan

m

magenta

y

yellow

k

black

w

white

 

線の指定は、表3に示すような対応である。

 

表3 線の指定

'-'

solid line

'--'

dashed line

'-.'

dash-dotted line

':'

dotted line

 

グラフのタイトルは次の関数呼び出しによって行っている。

plt.title('Transition of Population (Tokyo)\n', fontsize = 15)

表示文字列の最後に改行文字 ’\n’ が付いているので、タイトルの位置は1行分上に設定される。

横軸と縦軸のタイトルを設定した後、plt.show()の呼び出しで描画グラフを表示している。

上のプログラムの実行で図1に示すグラフが表示される。

図1

 

グラフ左上の「1e7」は、「」を表している。したがって、横軸の例えば「1.2」は、「」を表している。

 

上のプログラムにおいて、折れ線の描画を色と線種に分けて個別に指定するプログラムとして以下のように書き換えてみた。

 

import matplotlib.pyplot as plt

import numpy as np

 

xdata = [1880, 1900, 1920, 1940, 1960, 1980, 2000]

"""          年: 横軸の値

"""

ydata = [959596, 2014100, 3699428, 7354971, 9683802, 11618281, 12064101]

"""          人口: 縦軸の値

"""

plt.plot(xdata, ydata, color = '#007700', linestyle = 'solid', linewidth = 3)

"""     折れ線の描画:  '#007700' 暗い緑色

"""

plt.title('Transition of Population (Tokyo)\n', fontsize = 15)

"""        グラフのタイトルとフォントサイズ

"""

plt.xlabel('Year')

"""     横軸のタイトル

"""

plt.ylabel('Population')

"""     縦軸のタイトル

"""

plt.show()

"""     グラフの表示

"""

 

色の指定は、RGB値を16進数で表して

color = '#007700'

と指定している。16進数で、R=00、G=77、B=00である。

線種は、linestyleの値として設定している。値は、

solid’、‘dashed’、‘dashdot’、‘dotted

などの指定ができる。

上のプログラムを実行すると図2の折れ線グラフが表示される。

図2

 

 

 

軸の目盛りの設定

 

図1あるいは図2のグラフでは、縦軸の目盛りがの形式で表示されているので分かり難い。これを図3のように表示にされるように変更した。

図3

 

プログラムは以下のようである。

 

import matplotlib.pyplot as plt

import numpy as np

import japanize_matplotlib      #     グラフでの日本語使用可

 

xdata = [1880, 1900, 1920, 1940, 1960, 1980, 2000]

"""          年: 横軸の値

"""

ydata = [959596, 2014100, 3699428, 7354971, 9683802, 11618281, 12064101]

"""          人口: 縦軸の値

"""

plt.plot(xdata, ydata, color = 'blue', linestyle = 'solid', linewidth = 3)

"""     折れ線の描画: 

"""

plt.title('東京都の人口推移', fontsize = 16)

"""        グラフのタイトルとフォントサイズ

"""

plt.xlabel('', fontsize=14)

"""     横軸のタイトル

"""

plt.ylabel('人口', fontsize=14)

"""     縦軸のタイトル

"""

yticksv = np.arange(0, 12_100_000, 2_000_000) 

pop_man = [f'{round(v/10000):d}万人' for v in yticksv]

plt.yticks(yticksv, pop_man, rotation=45)

"""      縦軸の目盛りの設定

"""

plt.tight_layout()

plt.show()

"""     グラフの表示

"""

 

 

グラフに日本語が表示できるように、モジュールjapanize_matplotlibimportしている。

 

import japanize_matplotlib

 

縦軸の目盛りは次のコードで設定している。

 

yticksv = np.arange(0, 12_100_000, 2_000_000) 

pop_man = [f'{round(v/10000):d}万人' for v in yticksv]

plt.yticks(yticksv, pop_man, rotation=45)

 

これにより、縦軸の目盛りは2,000,000人単位で万人を単位として表示される。さらに、rotation=45の指定により、メモリの文字列を45度回転して表示している。

次のコード

 

plt.tight_layout()

 

は、グラフが描画画面からはみ出さないように調整するものである。

 

 

なお、Pythonによるデータ分析の解説を<岡本安晴いまさら聞けないPythonデータ分析丸善出版>で行っている。

 

 

Home