Pythonのデータ解析支援ライブラリPandas 〜その18 Pandasの.plot()で出力されたグラフをいじってみる1〜

スポンサーリンク

データ解析支援ライブラリPandas

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

Pythonのデータ解析支援ライブラリPandas 〜その17 色々なグラフ表示を試してみる:.plot()〜
データ解析支援ライブラリPandas前回はデータ解析支援ライブラリPandasで新しくデータフレームを作成する方法を解説しました。今回はデータをグラフにする方法を解説していきたいと思います。実はグラフに関し...

その際、「.plot()」というコマンドを使ってグラフ表示を行いましたが、今回はこの「.plot()」のオプションを使ってグラフの見栄えを修正していきたいと思います。

ただオプション全部紹介すると分かりづらくなってしまうので、使いそうなものに絞って紹介していきます。

ということでまずは準備ですが、データはランダムデータ作成プログラムで作成して、前回用いたこちらのデータを使っていきます。

Pythonでファイル数、行数、列数を指定してダミーデータのファイルを生成するプログラムを作ってみた その2:nanをランダムにもつダミーデータ作成プログラム
nanとは?今回は前に作成したダミーデータのファイルを生成するプログラムをアップデートしていきます。アップデートする方向としては「nan」という値をランダムに入れるということです。ここで疑問。「na...

データの読み込みと、基準となるグラフの出力のプログラムはこんな感じ。

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のコマンドを使って色々いじれるか試してみましょう。

ではでは今回はこんな感じで。

コメント

タイトルとURLをコピーしました