目次
Pythonグラフに要素情報を付ける
今回はPythonのグラフに対して「軸」や「凡例」などの要素情報を付与する方法をご紹介します
グラフの見た目を良くしたり、必要な情報を付けることができます
matplotlibのpyplotという機能を使い、要素情報を書いていきます
まとめて書くと情報量が多く、訳が分からないと思うので一つずつ説明していきます
x = [1,2,3,4,5,6,7]
y = [2,4,8,16,32,64,128]
x_num = len(x)
def add_value_label(x_list,y_list):
for i in range(0, x_num):
plt.text(x_list[i],y_list[i]/2, y_list[i], ha='center', color='white')
#(x座標,y座標,表示するテキスト)
plt.figure(figsize=(12,4))
plt.bar(x, y, label='サンプルデータ', color='dodgerblue')
plt.title('タイトル',{'fontsize':13})
plt.xlabel('X軸のラベル',{'fontsize':13})
plt.ylabel('Y軸のラベル',{'fontsize':13})
plt.grid(axis='y')
plt.axis([0, 8, 0, 140]) #[x最小値,x最大値,y最小値,y最大値]
plt.tick_params(labelsize=13)
plt.legend()
add_value_label(x,y)
plt.show()
事前準備
グラフ作成に必要なmatplotlibと、データ処理に必要なpandasをインポートします
import matplotlib.pyplot as plt
%matplotlib inline
import pandas as pd
グラフ要素の設定
基本グラフの作成
主役になるグラフ作成について簡単に説明します
X軸とY軸になる2つのデータ(リスト)を用意しておき、plt.plotを利用し折れ線グラフを作成します
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x, y)
plt.show()
この基本的なグラフに対して「要素情報」を付けていきましょう
タイトル:title
plt.titleを利用するとグラフの上部に「タイトル」を設定することができます
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x, y)
plt.title('タイトル') #タイトル
plt.show()
※日本語が□□になってしまう場合
Pythonの初期設定では日本語が文字化けしてしまいます(□□が並びます)
matplotlibの日本語バージョンをインストールしましょう
!pip install japanize-matplotlib
import japanize_matplotlib
X軸ラベル:xlabel
plt.xlabelでX軸(横軸)のラベルを設定することができます
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x, y)
plt.xlabel('X軸のラベル') #X軸ラベル
plt.show()
Y軸ラベル:ylabel
plt.ylabelはY軸(縦軸)を設定することができます
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x, y)
plt.ylabel('y軸のラベル') #Y軸ラベル
plt.show()
※文字サイズの設定方法
{‘fontsize’:15}を設定することでタイトルや軸ラベルの文字の大きさを変更することができます
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x, y)
plt.title('タイトル',{'fontsize':15}) #文字サイズ
plt.xlabel('X軸のラベル',{'fontsize':15}) #文字サイズ
plt.ylabel('Y軸のラベル',{'fontsize':15}) #文字サイズ
plt.show()
目盛りサイズ:tick_params
plt.tick_paramsで目盛りの大きさを設定することができます
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x, y)
plt.tick_params(labelsize=15) #目盛りサイズ
plt.show()
軸の最大値-最小値:axis
plt.axisはX軸とY軸の最大値・最小値を設定することができます
何も設定しないと自動で設定されます
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x, y)
plt.axis([0, 7, 0, 40]) #[x最小値,x最大値,y最小値,y最大値]
plt.show()
グラフサイズ:figure
plt.figureのfigsizeでグラフのサイズを変更することができます
※グラフ作成のplotの前にグラフサイズを定義する必要があるため、順番に気を付けてください
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.figure(figsize=(12,4)) #グラフサイズ(横,縦)
plt.plot(x, y)
plt.show()
色:color
plotのパラメータ内のcolorで色を設定することができます
※他の棒グラフ(bar)や散布図(scatter)でも同様のパラメータがあります
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x,y, color='red') #色
plt.show()
色の設定に関しては「色名」を英字で記述することで設定ができます
また濃くしたい場合は「dark」、薄くしたい場合は「light」を付けましょう
凡例:legend
plt.legendで凡例を設定することができます
グラフ作成時にパラメータで付けたlabelが凡例として表示されます
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x,y,label='サンプルデータ')
plt.legend() #凡例
plt.show()
補助線:grid
plt.gridで補助線(グリッド)を設定することができます
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x,y)
plt.grid() #補助線
plt.show()
axisを「x」に設定すると縦線のみ、axisを「y」に設定すると横線のみが表示されます
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x,y)
plt.grid(axis='y') #補助線
plt.show()
データラベル:text
plt.textを使ってデータラベルを設定することができます
「x座標、y座標、表示するテキスト」の順にfor文を使って繰り返し処理を行い、add_value_labelという関数を定義します
※x_numの変数のみ変更し、以下はコピペしてください
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.plot(x, y)
x_num = len(x)
def add_value_label(x_list,y_list):
for i in range(0, x_num):
plt.text(x_list[i],y_list[i], y_list[i], ha='center')
#(x座標,y座標,表示するテキスト)
add_value_label(x,y)
plt.show()
plt.textの「X座標、Y座標、表示するテキスト」における「Y座標」を÷2することで、グラフ内にデータラベルを表示させることができます
x = [1,2,3,4,5]
y = [2,4,8,16,32]
plt.bar(x, y)
x_num = len(x)
def add_value_label(x_list,y_list):
for i in range(0, x_num):
plt.text(x_list[i],y_list[i]/2, y_list[i], ha='center', color='white')
#(x座標,y座標,表示するテキスト)
add_value_label(x,y)
plt.show()
まとめ
今回はPythonのグラフ作成における「要素設定」の方法についてご紹介してきました
ぜひ見やすく分かりやすいグラフを作成してみてください
またSeabornでよりきれいなグラフを作れるのでご覧ください