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/ccfe061479decd19d31df19b165b8f6479947bf225cf808d4eb5334c31329a06.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/7d5c512ee43243777dd71857b074e2177450399a4a82658330936ba0e26f30aa.png

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

複数のグラフに分割#

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

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

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

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

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

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

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

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

Matplotlib 線の書式

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

Matplotlib 色の書式

マーカーを表示する#

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

df.plot(marker="o")
<Axes: >
../_images/faf191d4d8e7f4f0ad57343180fc2a898aa1b062b609cb559bb843718753d00b.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/2d4f76cd58409ea7867e7acb197d8313002be5167294201c5c5c9b56d3160a81.png