データ解析支援ライブラリPandas
前回はデータ解析支援ライブラリPandasで出力できるグラフを色々といじる方法を解説しました。

前回はPandasの.plot()の機能を使って、グラフの体裁を整えてみました。
今回はPandasの.plot()の機能ではなく、matplotlibでグラフの体裁を整えられるか試してみましょう。
ということでまずは準備をしていきましょう。
データはランダムデータ作成プログラムで作成して、前回用いたこちらのデータを使っていきます。

データの読み込みと、基準となるグラフの出力のプログラムはこんな感じ。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line")
実行結果

ということで始めていきましょう。
タイトルを表示する:plt.title(“タイトル”, fontsize=X)
タイトルを表示するには、.plot()より後の行に「plt.title(“タイトル”)」を追加することでタイトルを表示することができます。
また「fontsize=X」を追加することで、タイトルのフォントの大きさを変えることができます。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line")
plt.title("title", fontsize=15)
実行結果

軸名を表示:plt.xlabel(“X軸名”)、plt.ylabel(“Y軸名”)
次はX軸名、Y軸名を追加する方法です。
X軸名を追加するにはplt.xlabel(“X軸名”)、Y軸名を追加するにはplt.ylabel(“Y軸名”)で追加できます。
またオプションに「fontsize=X」を追加することで、それぞれの軸名のフォントサイズを変更することができます。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line")
plt.xlabel("xlabel", fontsize=15)
plt.ylabel("ylabel", fontsize=15)
実行結果

軸の数値のフォントサイズ変更:plt.xticks(fontsize=X)、plt.yticks(fontsize=X)
軸の数値のフォントサイズを変更するには、X軸の場合はplt.xticks(fontsize=X)、Y軸の場合はplt.yticks(fontsize=X)を追加します。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line")
plt.xticks(fontsize=15)
plt.yticks(fontsize=15)
実行結果

軸の数値の角度を変更:.plt.xticks(rotation=X)、plt.yticks(rotation=X)
軸の数値の角度を変更するには、X軸の場合はplt.xticks(rotation=X)、Y軸の場合はplt.yticks(rotation=Y)とします。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line")
plt.xticks(rotation=45)
plt.yticks(rotation=45)
実行結果

また先ほどの軸のフォントサイズの変更と一緒に使うことも可能です。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line")
plt.xticks(fontsize=15, rotation=45)
plt.yticks(fontsize=15, rotation=45)
実行結果

グリッドを表示:plt.grid()
グラフにグリッドを表示するには、plt.grid()を追加します。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line")
plt.grid()
実行結果

表示範囲を変更:plt.xlim(値1, 値2)、plt.ylim(値1, 値2)
X軸方向の表示範囲を変更するにはplt.xlim(値1, 値2)、Y軸方向の表示範囲を変更するにはplt.ylim(値1, 値2)とします。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line")
plt.xlim(2,8)
plt.ylim(20, 80)
実行結果

番外編:グラフサイズは変更できない?
前回、Pandasの.plot(figsize=(X, Y))でグラフのサイズを変更できると解説しました。
同じようにグラフサイズを.plot()のオプションではない形でグラフサイズを変更できないか検討してみました。
まずはグラフサイズを設定しない場合のサイズはこちら。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line")
実行結果

グラフサイズを設定した場合のサイズはこちら。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line", figsize=(8,6))
実行結果

これが違う形で再現できるのか、色々試してみた結果はこんな感じです。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line")
plt.figure(figsize=(8,6))
実行結果

import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
df.plot(kind="line")
plt.figsize=(8,6)
実行結果

import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
plt.figure(figsize=(8,6))
df.plot(kind="line")
実行結果

import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
plt.figsize=(8,6)
df.plot(kind="line")
実行結果

とまぁこんな感じでグラフサイズを規定するコマンドを場所とか、書き方とか変えてみたのですが、どうしてもグラフサイズが変わらなかったわけです。
できないことをずっとやっていても仕方ないので、ここら辺にしておきましょう。
ということでグラフサイズを変えるなら「.plot(figsize=(X, Y))」とPandasの.plot()のオプションとして規定するのが間違いがないということでした。
今回のことでPandasの.plot()のオプションとして規定するほうが良い値、別途matplotlibのコマンドとして規定するほうが良い値色々とあることが分かりました。
ここら辺は使う個人が使いやすようにやればいいのかなと思います。
次回はPandasでデータの概要や統計情報を表示する方法を解説していきます。

ではでは今回はこんな感じで。
コメント