[seaborn] 5. lineplotで複数データを可視化する方法 – 信頼区間を含めた効果的なグラフ作成

python

はじめに

データ分析において、複数のデータセットを比較したり、時間経過に伴う変化を観察したりする場合、効果的な可視化が重要です。seabornライブラリのlineplot関数は、これらの目的に適した強力なツールであり、信頼区間を含めた線グラフを簡単に作成することができます。

コード

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

解説

モジュールのインポートなど

データの読み込み

3/8〜10の京都と鹿児島の気象データを下記サイトから読み込みます。

気象庁|過去の気象データ検索
過去の気象データ検索

DataFrameの結合と列の追加

データフレームをpd.concatで結合した後、新たに[‘loc’]列を追加します。np.tileは同じ要素を繰り返す配列を作成する関数で、データフレームの長さと同じサイズの配列を追加しました。

最終的なDataFrameは以下のようになります(上位5行のみ表示):

index 現地 海面 降水量(mm) 気温(℃) 露点温度(℃) 蒸気圧(hPa) 湿度(%) 風速 風向 日照時間(h) 全天日射量(MJ/㎡) 降雪 積雪 天気 雲量 視程(km) loc
0 0 1 1010.2 1016.6 0.0 11.2 2.5 7.3 55 3.2 東北東 NaN NaN NaN NaN 20.00 kyoto
1 1 2 1009.6 1016.0 0.0 10.8 3.4 7.8 60 4.3 NaN NaN NaN NaN 20.00 kyoto
2 2 3 1008.7 1015.1 0.0 10.2 3.7 8.0 64 2.2 東北東 NaN NaN NaN NaN 20.00 kyoto
3 3 4 1008.5 1014.9 0.5 10.1 4.1 8.2 66 0.9 北北西 NaN NaN NaN NaN 9.73 kyoto
4 4 5 1007.8 1014.2 1.0 9.7 6.1 9.4 78 2.5 北東 NaN NaN NaN NaN 13.40 kyoto

鹿児島のデータも同様に処理します。

index 現地 海面 降水量(mm) 気温(℃) 露点温度(℃) 蒸気圧(hPa) 湿度(%) 風速 風向 日照時間(h) 全天日射量(MJ/㎡) 降雪 積雪 天気 雲量 視程(km) loc
0 0 1 1007.8 1011.6 0.0 15.0 13.7 15.7 92 5.1 西北西 NaN NaN NaN NaN NaN kagoshima
1 1 2 1008.0 1011.8 14.3 12.5 14.5 89 4.4 西北西 NaN NaN NaN NaN NaN kagoshima
2 2 3 1007.8 1011.6 13.9 12.1 14.1 89 3.6 西北西 NaN NaN NaN 6 20.0 kagoshima
3 3 4 1007.8 1011.6 13.9 11.3 13.3 84 3.6 北西 NaN NaN NaN NaN NaN kagoshima
4 4 5 1008.0 1011.8 13.1 10.6 12.8 85 3.5 北西 NaN NaN NaN NaN NaN kagoshima

DataFrameの合体

京都と鹿児島のデータを合体してひとつにします。

複数データの95%信頼区間つき線グラフの表示

x軸に”時”、y軸に”気温(℃)”の線グラフを作成します。hue=”loc”を設定することで、京都と鹿児島それぞれのデータについて平均と信頼区間が自動的に計算され、両地点の信頼区間つき線グラフが1つのプロット上に表示されます。

styleで違いを表現する

style=”loc” を設定すると、カテゴリごとに線が点線と実線で区別されて表示されます。

hueとstyleで違いを表現する

hueとstyleの両方に’loc’を設定すると、グラフの視認性が大幅に向上します。

マーカーを表示する

styleを設定した状態でmarkers=Trueとすると、グラフ上にマーカーが表示されます。また、dashes=Falseを設定すると、点線表示が無効になります。

palleteで色を変える

paletteを設定して適用することで、グラフの色を変更できます。

線の太さを変える

size=”loc”を設定すると、データの値に応じて線の太さが変化します。

参考

Visualizing statistical relationships — seaborn 0.13.2 documentation

コメント