Up

棒グラフと円グラフ

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

なお、日本語対応版ウェブサイトに用意した。

 

表1のデータは、東京都のウェブサイトに掲載されていたものである(2017年3月)。

 

表1 東京都の人口(平成26年)

 

区部

All-Ku

市部

All-Shi

郡部

All-Gun

島部

All-Islands

人口

9143041

4151178

57738

26627

 

表1のデータの棒グラフを描くPythonプログラムを以下のように作成した。

 

import matplotlib.pyplot as plt

import numpy as np

 

values = [9143041, 4151178, 57738, 26627]       #   データ: 東京都地域別人口、平成26年

indx = np.arange(4)                             #   カテゴリ数

plt.bar(indx, values)

plt.xticks(indx, ['All-Ku', 'All-Shi', 'All-Gun', 'All-Islands'])

plt.show()                                      #   描画グラフの表示

 

人口のデータ値をリストvaluesに設定し、カテゴリ数(表1の場合、「区部」、「市部」、「郡部」、「島部」の4カテゴリ)をindxに関数np.arange(4)によって設定している。このindxvaluesの組み合わせでplt.bar(indx, values)と棒グラフの描画を行っている。横軸のカテゴリのラベルは関数plt.xticks( )によって設定している。全ての描画作業の後、plt.show()を呼び出して描画グラフを表示している。。上のプログラムの場合、図1のように棒グラフが表示される。

図1

 

グラフの左上にとあるのは、を表している。したがって、横軸の値は、を表している。

描画グラフは、下にある「保存」ボタンをクリックすれば保存することができる。保存した画像ファイルを他のソフトで読み込んで、説明を加えたりすれば、より解り易い図にすることができる。

右上の「閉じる」ボタンをクリックすれば、描画ウィンドウは閉じられて、plt.show()の実行終了となる。

 

次のプログラムは、関数plt.barh()によって横棒グラフを描画するものである(図2)。

 

import matplotlib.pyplot as plt

import numpy as np

 

values = [9143041, 4151178, 57738, 26627]               #       データ

indx = np.arange(4)                                     #       カテゴリ数

plt.barh(indx, values)                                  #       横棒グラフの描画

plt.yticks(indx, ['All-Ku', 'All-Shi', 'All-Gun', 'All-\nIslands'])

plt.show()                                              #       描画グラフの表示

 

図2

 

カテゴリのラベル「All-Islands」が長いので、改行文字「'\n’」を入れて、「All-」と「Islands」の2行に分けて表示している。

 

表1のデータの円グラフ(図3)を描くプログラムを以下のように作成した。

 

import matplotlib.pyplot as plt

import numpy as np

 

values = [9143041, 4151178, 57738, 26627]                   #       データ

indx = np.arange(4)                                         #       カテゴリ数

Labels = ['All-Ku', 'All-Shi', 'All-Gun', 'All-Islands']

Colors = ['yellow', 'green', 'red', 'blue']                 #       色名 full name

plt.pie(values, labels = Labels, colors = Colors)           #       円グラフの描画

plt.axis('equal')                                           #       縦横同じサイズ                  

plt.show()                                                  #       グラフの表示

 

リストColorsに円グラフで使用する色を設定している。色は「’blue’」、「’green’」、「’red’」、’cyan’」、「’magenta’」、「’yellow’」、「’black’」、「’white’」とfull nameで指定するか、それらの簡略形「’b’」、「’g’」、「’r’」、’c’」、「’m’」、「’y’」、「’k’」、「’w’」でも指定することができる。あるいはRGBで設定することもできる。例えば、「’#123456’」は、RGBの値が16進数表記でR=12、G=34、B=56であることを表す。円グラフの描画は関数plt.pie()

plt.pie(values, labels = Labels, colors = Colors)

と呼び出すことによって行っている。円グラフが楕円ではなく円になるように軸方向の長さの設定を

plt.axis('equal')

と行っている。以上の描画の後、plt.show()の呼び出しで描画グラフを表示している(図3)。

 

図3

 

カテゴリのラベル「All-Gun」と「All-Islands」が重なっていて見難いので、「'All-Gun’」の先頭に改行文字「'\n’」を置いて以下のようにする。

 

import matplotlib.pyplot as plt

import numpy as np

 

values = [9143041, 4151178, 57738, 26627]

indx = np.arange(4)

Labels = ['All-Ku', 'All-Shi', '\nAll-Gun', 'All-Islands']      #   '\n''All-Gun'の先頭に付ける

Colors = ['yellow', 'green', 'red', 'blue']

plt.pie(values, labels = Labels, colors = Colors)

plt.axis('equal')

plt.show()

 

このときは、「'All-Gun’」が1行下に移動するので図4のように重ならない。

図4

 

色の設定をRGBの16進数表記で行う例を以下のように作成した。

 

import matplotlib.pyplot as plt

import numpy as np

 

values = [9143041, 4151178, 57738, 26627]

indx = np.arange(4)

Labels = ['All-Ku', 'All-Shi', '\nAll-Gun', 'All-Islands']

Colors1 = ['#FFFF00', '#00FFFF', '#FF0000', '#0000FF']        #      色をRGBの16進数表記で指定

plt.pie(values, labels = Labels, colors = Colors1)

plt.axis('equal')

plt.show()

 

上のプログラムを実行すると、図5の円グラフが描かれる。

図5

 

色の指定を簡略形で行った場合を以下のように作成した。

 

import matplotlib.pyplot as plt

import numpy as np

import codecs

 

values = [9143041, 4151178, 57738, 26627]

indx = np.arange(4)

Labels = ['All-Ku', 'All-Shi', '\nAll-Gun', 'All-Islands']

Colors2 = ['y', 'g', 'r', 'b']

plt.pie(values, labels = Labels, colors = Colors2)

plt.axis('equal')

plt.show()

 

実行すると図6のような円グラフが表示された。

図6

 

 

Up