データ解析支援ライブラリPandas
前回はデータ解析支援ライブラリPandasで出力できるグラフを紹介しました。

その際、「.plot()」というコマンドを使ってグラフ表示を行いましたが、今回はこの「.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")
実行結果

実際は「kind=”line”」のオプションは要らないのですが、他のグラフに変えることもあるかもしれないので、一応つけておきます。
ということで準備ができたので、色々試していきましょう。
グラフのサイズを変える:figsize
まずはグラフのサイズを変えてみましょう。
グラフのサイズを変えるには「figsize=(横のサイズ, 縦のサイズ)」をオプションとして加えます。
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=(5,3))
実行結果

ちょっと小さくしてみました。
今度は大きめにしてみましょう。
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=(10,6))
実行結果

グラフが小さくなってしまったり、重なってしまった場合はこのfigsizeを調整してやることで解決することがあるので試してみてください。
フォントサイズを変更する:fontsize
グラフのフォントサイズを変更するには「fontsize=フォントの大きさ」を用います。
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", fontsize=15)
実行結果

フォントサイズを大きくしたら、X軸の値が重なってしまいました。
X軸の値に角度をつける:rot
先ほどのようにX軸の値が重なってしまった場合、X軸の値に角度をつけると見易くなります。
その場合は「rot=角度」で指定できます。
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", fontsize=15, rot=45)
実行結果

複数のグラフに分割する:subplots, sharex, sharey, layout
これまでは全てのデータを一つのグラフに表示していましたが、それぞれ別のグラフとして表示することも可能です。
その場合はオプションに「subplots=True」を追加します。
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", subplots=True)
実行結果

そしてこのsubplotsを使った際に、X軸やY軸を同じ値を使うことも可能です。
その場合はさらにオプションにX軸なら「sharex=True」、Y軸なら「sharey=Ture」を追加しますが、sharexはデフォルトでTrueになっています。
ということで「sharey=True」のみ試してみましょう。
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", subplots=True, sharey=True)
実行結果

Y軸の数値に注目すると5つ全てのグラフが同じ値になっているのが分かります。
ちなみに上に戻ってもらうと分かるのですが、元々は揃っていませんでした。
またグラフの並びですが、デフォルトでは縦に一列に並んでいます。
これを変更するには「layout=(縦の個数, 横の個数)」をオプションとして追加します。
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", subplots=True, layout=(2,3))
実行結果

タイトルを表示する:title=”タイトル”
グラフタイトルを表示するには、「title=”タイトル”」を追加します。
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", title="test data")
実行結果

先ほどの「subplots=True」で複数のグラフとして表示した時もこの「title」を使用することができます。
その場合はグラフの数のタイトルをリストとして「title」に渡します。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
subtitle = ["A", "B", "C", "D", "E"]
df.plot(kind="line", subplots=True, title=subtitle)
実行結果

被ってしまっていますが、それぞれのグラフに対してタイトルが設置されました。
グリッドを表示する:grid
グラフにグリッドを表示するには、オプションに「grid=True」とします。
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", grid=True)
実行結果

線のスタイルを変更する:style
それぞれの線のスタイルを変更するには、styleのオプションを使います。
その際、複数の線のスタイルを変更するには、リストを用います。
import pandas as pd
from matplotlib import pyplot as plt
df = pd.read_csv("python-pandas-19_data1.txt", index_col=0)
linestyle = ["-", "--", "-.", ":"]
df.plot(kind="line", style=linestyle)
実行結果

ラインスタイル | 日本語名 | 英語名 |
---|---|---|
– | 実線 | solid |
— | 破線 | dashed |
-. | 破線とドット | dashed-dotted |
: | ドット | dotted |
X軸、Y軸の表示範囲を設定する:xlim、ylim
X軸、Y軸の表示範囲を設定するには、xlim、ylimを用います。
範囲指定にはリスト形式で[最小値,最大値]として指定します。
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", xlim=[2,7], ylim=[20,70])
実行結果

グラフの下に表を表示する:table
これはPandas特有の機能かもしれませんが、グラフの下に表を表示することができます。
その場合は「table=表示するデータ」をオプションに追加します。
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", table=df)
実行結果

グラフのX軸と表の行が同じになるはずなのにずれてしまっています。
こういう場合は表を転置させましょう。
転置させるには、「データフレーム名.T」とします。
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", table=df.T)
実行結果

一応表示はできたのですが、X軸と被ってしまっています。
まだまだ色々修正しなければいけなさそうですが、まぁ表示できたのでよしとしましょう。
これでそこそこグラフをいじることができるようになったと思います。
次回はPandasのplotのオプションとしてではなく、matplotlibのコマンドを使って色々いじれるか試してみましょう。

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