Pandasの折れ線グラフ#

公開日

参考

Pandasを使わずMatplotlib単体で折れ線グラフを出力する場合、Matplotlibの折れ線グラフを参照ください。

PandasのSeries, DataFrameで折れ線グラフをプロットするには、plot()メソッドを使用します。

簡単な例#

まず、pandas.Seriesでグラフをプロットする簡単な例を以下に示します。indexに指定した変数が横軸になります。

import pandas as pd

sr = pd.Series([1, 3, 2], index=[0, 10, 20])
sr.plot()
<Axes: >
../_images/31fc18217583c0283da184f836616a018a69bfdeb5cbbb58035f9c51d4d133ed.png

次に、pandas.DataFrameの簡単な例を以下に示します。indexに指定した変数が横軸になり、columnsが異なる線(系列)になります。

df = pd.DataFrame(
    [[1, 2], [3, 5], [2, 4]],
    index=[0, 10, 20],
    columns=["ham", "egg"]
)

display(df)
df.plot()
ham egg
0 1 2
10 3 5
20 2 4
<Axes: >
../_images/0dd9a57a7d8fe722e369dd0916c50903c4a4887e440f128349984ba5f7911313.png

plotメソッドのオプションについては、Pandas グラフ作成の共通設定を参照して下さい。

複数のグラフに分割#

DataFrameを複数のグラフで表示する場合、plot()メソッドにsubplots=Trueオプションを指定します。

df.plot(subplots=True)
array([<Axes: >, <Axes: >], dtype=object)
../_images/09bcda294092990018d743d5677289911ab96b4bf9b4e4891a971d9a3ed269c3.png

さらに、全てのグラフの縦軸の範囲を揃えたい場合、plot()メソッドにsharey=Trueオプションを指定します。

df.plot(subplots=True, sharey=True)
array([<Axes: >, <Axes: >], dtype=object)
../_images/62bdb59fb058bc6e4b57223d7a0ab7c35270757bfe77639bf2daa34e0a4fee3c.png

線の太さ・色・種類を変える#

線の太さを変える場合、linewidthオプションで指定します。値が大きいほど、線が太くなります。 また、線の種類と色は、それぞれlinestyle, colorオプションで指定します。

df.plot(linewidth=5, style=["--", ":"], color=["black", "pink"])
<Axes: >
../_images/b7d81a2cc801ed72a2bd547fc3b4a5f29812f3306ce5d60d810b46a0f56ea31a.png

linewidth, styleオプションの詳細は以下の記事を参考にして下さい。

Matplotlib 線の書式

また、colorオプションの詳細は以下の記事を参考にして下さい。

Matplotlib 色の書式

マーカーを表示する#

データのマーカーを表示するには、markerオプションを使用します。

df.plot(marker="o")
<Axes: >
../_images/9bc527e96f94dd86811bc4cb6f3faf8e369c01983efcbfb14d118b527d6a74f9.png

主なmarkerオプションを以下の表に示します。

marker

説明

o

v

下向き三角

^

上向き三角

<

左向き三角

>

右向き三角

s

四角形(square)

p

五角形(pentagon)

+

+記号

x

x記号

D

ダイヤモンド

その他に利用可能なマーカーの種類は、以下の公式ページを参照してください。

matplotlib.markers — Matplotlib documentation

マーカーの枠線の太さ・色などは変更できます。指定できるオプションを以下の表に示します。

オプション

説明

markersize

マーカーの大きさ

markeredgewidth

マーカー枠線の太さ

markeredgecolor

マーカー枠線の色

markerfacecolor

マーカーの塗潰しの色

fillstyle

マーカーの塗潰しスタイル。full (デフォルト), left, right, bottom, top, none (塗潰し無し)

markerfacecoloralt

マーカーの塗潰しの色2。fillstyleでleft, right, bottom, topを指定した際、塗り潰されない領域の色となる

これらのオプションを使用した例を以下に示します。マーカーの枠線が赤、左半分が緑、右半分が青となります。

df.plot(marker="o", markersize=20, markeredgecolor="red", markeredgewidth=2, 
        markerfacecolor="green", fillstyle="left", markerfacecoloralt="blue")
<Axes: >
../_images/768052ea2396e71c57bed37457583609c4555c1f14fa9f405f8fb501f44c05c3.png