0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kaggle入門Advent Calendar 2024

Day 16

【kaggle】データの視覚化 - 棒グラフとヒートマップ【備忘翻訳】

Last updated at Posted at 2024-12-15

はじめに

当記事はkaggleのLearnのIntro to Machine LearningBar Charts and Heatmapsを翻訳して備忘としたものです。
拙い英語力なので間違い等あればご指摘いただけたらと思います。

まとめ:【kaggle】翻訳記事まとめ【備忘翻訳】
前:【kaggle】データの視覚化 - 折れ線グラフ【備忘翻訳】
次:【kaggle】データの視覚化 - 散布図【備忘翻訳】

当記事に含まれるコードはkaggle内のnotebook内で正常に動作します。動作を試したい場合はkaggleのnotebookで試してください。


棒グラフとヒートマップ

いろや長さを使用してデータセット内のカテゴリを比較する

独自の折れ線グラフを作成できるようになったので、次はさらに多くの種類のグラフについて学習しましょう。

notebookのセットアップ

いつものようにコーディング環境の設定から始めます。

セットアップ
import pandas as pd
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
print("Setup Complete")
console
Setup Complete

データセットの選択

このチュートリアルではフライトの遅延を追跡する米国運輸省のデータセットを使用します。

このCSVファイルをExcelで開くと、各月の行(1=1月、2=2月など)と各航空会社コードの列が表示されます。

5nYs9se.jpg

各エントリには、異なる航空会社と月(すべて2015年)の平均到着遅延(分単位)が表示されています。マイナスのエントリは、(平均して)早く到着する傾向のあるフライトを示します。例えばアメリカン航空のフライト(航空会社コード:AA)は1月の平均到着時間が約7分遅れ、アラスカ航空のフライト(航空会社コード:AS)は4月の平均到着時間が約3分早くなりました。

データを読み取る

以前と同様に、pd.read_csvコマンドを使用してデータを読み込みます。

# Path of the file to read
flight_filepath = "../input/flight_delays.csv"

# Read the file into a variable flight_data
flight_data = pd.read_csv(flight_filepath, index_col="Month")

前回のチュートリアルで使用したコードよりもコードが少し短いことに気付くかもしれません。この場合、行ラベル(「Month」列)は日付に対応していないため、カッコ内にparse_data=Trueを追加しません。ただし、最初の2行のコードは変わりません。

データを調査する

今回のデータセットは小さいので、その内容を全て簡単に表示できます。これはデータセットの名前だけを記述するだけでできます。

# Print the data
flight_data
AA AS B6 DL EV F9 HA MQ NK OO UA US VX WN
Month
1 6.955843 -0.320888 7.347281 -2.043847 8.537497 18.357238 3.512640 18.164974 11.398054 10.889894 6.352729 3.107457 1.420702 3.389466
2 7.530204 -0.782923 18.657673 5.614745 10.417236 27.424179 6.029967 21.301627 16.474466 9.588895 7.260662 7.114455 7.784410 3.501363
3 6.693587 -0.544731 10.741317 2.077965 6.730101 20.074855 3.468383 11.018418 10.039118 3.181693 4.892212 3.330787 5.348207 3.263341
4 4.931778 -3.009003 2.780105 0.083343 4.821253 12.640440 0.011022 5.131228 8.766224 3.223796 4.376092 2.660290 0.995507 2.996399
5 5.173878 -1.716398 -0.709019 0.149333 7.724290 13.007554 0.826426 5.466790 22.397347 4.141162 6.827695 0.681605 7.102021 5.680777
6 8.191017 -0.220621 5.047155 4.419594 13.952793 19.712951 0.882786 9.639323 35.561501 8.338477 16.932663 5.766296 5.779415 10.743462
7 3.870440 0.377408 5.841454 1.204862 6.926421 14.464543 2.001586 3.980289 14.352382 6.790333 10.262551 NaN 7.135773 10.504942
8 3.193907 2.503899 9.280950 0.653114 5.154422 9.175737 7.448029 1.896565 20.519018 5.606689 5.014041 NaN 5.106221 5.532108
9 -1.432732 -1.813800 3.539154 -3.703377 0.851062 0.978460 3.696915 -2.167268 8.000101 1.530896 -1.794265 NaN 0.070998 -1.336260
10 -0.580930 -2.993617 3.676787 -5.011516 2.303760 0.082127 0.467074 -3.735054 6.810736 1.750897 -2.456542 NaN 2.254278 -0.688851
11 0.772630 -1.916516 1.418299 -3.175414 4.415930 11.164527 -2.719894 0.220061 7.543881 4.925548 0.281064 NaN 0.116370 0.995684
12 4.149684 -1.846681 13.839290 2.504595 6.685176 9.346221 -1.706475 0.662486 12.733123 10.947612 7.012079 NaN 13.498720 6.720893

棒グラフ

例えば、スピリット航空(航空会社コード:NK)のフライトの平均到着遅延を月別に示す棒グラフを作成するとします。

# Set the width and height of the figure
plt.figure(figsize=(10,6))

# Add title
plt.title("Average Arrival Delay for Spirit Airlines Flights, by Month")

# Bar chart showing average arrival delay for Spirit Airlines flights by month
sns.barplot(x=flight_data.index, y=flight_data['NK'])

# Add label for vertical axis
plt.ylabel("Arrival delay (in minutes)")
console
Text(0, 0.5, 'Arrival delay (in minutes)')

__results___7_1.png

テキスト(タイトルとラベル)と図のサイズをカスタマイズするためのコードは前のチュートリアルのコードと同じです。棒グラフを作成するコードは新しいものです:

# Bar chart showing average arrival delay for Spirit Airlines flights by month
sns.barplot(x=flight_data.index, y=flight_data['NK'])

主に3つの要素から成り立っています。

  • sns.barplot - notebookで棒グラフを作成します。
  • x=flight_data.index - 水平軸で使用するものを決定します。この場合、行にインデックスを付ける列(この場合は、month)を選択します。
  • y=flight_data['NK'] - これにより、垂直軸に表示される列を設定します。この場合は「NK」列を選択しています。

ヒートマップ

次はヒートマップを学びます。

以下のコードセルでは、flight_dataのパターンを素早く視覚化するためのヒートマップを作成します。各セルは、対応する値に応じて色分けされています。

# Set the width and height of the figure
plt.figure(figsize=(14,7))

# Add title
plt.title("Average Arrival Delay for Each Airline, by Month")

# Heatmap showing average arrival delay for each airline by month
sns.heatmap(data=flight_data, annot=True)

# Add label for horizontal axis
plt.xlabel("Airline")
console
Text(0.5, 47.7222222222222, 'Airline')

__results___9_1.png

ヒートマップを作成するための関連コードは次の通りです:

# Heatmap showing average arrival delay for each airline by month
sns.heatmap(data=flight_data, annot=True)

このコードは主に3つの要素から成り立っています。

  • sns.heatmap - notebookでヒートマップを作成します。
  • data=flight_data - これはnotebookに、flight_data内の全てのエントリを使用してヒートマップを作成します
  • annot=True - これにより、各セルの値がグラフ上に表示されます(これを省略すると、各セルから数字が消えます!)

表にはどのようなパターンが見られますか?例えば、よく見ると、年末の月(特に9~11月)は全ての航空会社にとって比較的暗く見えます。これは、航空会社がこれらの月の間にスケジュールを(平均して)よりよく守っていることを示唆しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?