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 15

【kaggle】データの視覚化 - 折れ線グラフ【備忘翻訳】

Last updated at Posted at 2024-12-14

はじめに

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

まとめ:【kaggle】翻訳記事まとめ【備忘翻訳】
前:【kaggle】データの視覚化 - Hello, Seaborn【備忘翻訳】
次:【kaggle】データの視覚化 - 棒グラフとヒートマップ【備忘翻訳】

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


折れ線グラフ

時系列でトレンドを可視化

コーディング環境に慣れたら、次は独自のチャートを作成する方法を学びましょう。

このチュートリアルでは本格的な折れ線グラフをPythonで作成する方法を学びましょう。今回の演習では実際のデータセットを用いて新しいスキルを活用してみましょう。

notebookのセットアップ

まず、コーディング環境のセットアップから始めます。

details
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

データの選択

このチュートリアルのデータセットは、音楽ストリーミングサービスSpotifyにおける世界中のデイリーの再生数を追跡します。2017年から2018年における5つの人気の楽曲に注目します。

  1. Ed Sheeranの「Shape of You」link
  2. Luis Fonziの「Despacito」link
  3. The Chainsmokers and Coldplayの「Something Just Like This」link
  4. Kendrick Lamarの「HUMBLE.」link
  5. French Montanaの「Unforgettable」link

image.png

最初に表示される日付は2017年1月6日であり、これはEd Sheeranの「Shape of You」のリリース日と一致していることに注目してください。表を見ると、「Shape of You」はリリース当日に世界中で12,287,078回再生されたことがわかります。他の曲は後になってからリリースされたため、最初の行に欠損値があることに注目してください。

データの取り込み

前のチュートリアルで学習したように、pd.read_csvコマンドを使用してデータセットを読み取ります。

# Path of the file to read
spotify_filepath = "../input/spotify.csv"

# Read the file into a variable spotify_data
spotify_data = pd.read_csv(spotify_filepath, index_col="Date", parse_dates=True)

上記のコードを実行した結果、spotify_dataを使用してデータセットにアクセスできるようになります。

データの調査

前のチュートリアルで学習したheadコマンドを使用して、データセットの最初の5行を表示します。

# Print the first 5 rows of the data
spotify_data.head()
Shape of You Despacito Something Just Like This HUMBLE. Unforgettable
Date
2017-01-06 12287078 NaN NaN NaN NaN
2017-01-07 13190270 NaN NaN NaN NaN
2017-01-08 13099919 NaN NaN NaN NaN
2017-01-09 14506351 NaN NaN NaN NaN
2017-01-10 14275628 NaN NaN NaN NaN

表示された最初の5行が、上記のデータセットのイメージ(Excelで表示されていたイメージ)と一致していることを確認します。

空のエントリは、「Not a Number」の略であるNaNとして表示されます。

少し変更するだけで(.head().tail()に変更)、データの最後の5行を確認することもできます。

# Print the last five rows of the data
spotify_data.tail()
Shape of You Despacito Something Just Like This HUMBLE. Unforgettable
Date
2018-01-05 4492978 3450315.0 2408365.0 2685857.0 2869783.0
2018-01-06 4416476 3394284.0 2188035.0 2559044.0 2743748.0
2018-01-07 4009104 3020789.0 1908129.0 2350985.0 2441045.0
2018-01-08 4135505 2755266.0 2023251.0 2523265.0 2622693.0
2018-01-09 4168506 2791601.0 2058016.0 2727678.0 2627334.0

ありがたいことに、それぞれの曲の毎日のグローバルストリームが何百万回も記録されており、全てがほぼ正しいように見えます。データのプロットに進みましょう。

データのプロット

データセットがnotebookに読み込まれました。折れ線グラフを作成するために必要なコードは1行だけです。

# Line chart showing daily global streams of each song 
sns.lineplot(data=spotify_data)
console
<AxesSubplot:xlabel='Date'>

image.png

上記のように、コードは比較的短く、2つの要素で構成されています。

  • sns.lineplotは、折れ線グラフを作成するコードです
  • data=spotify_dataは、グラフの作成に使用するデータを選択します

折れ線グラフを作成するときは常にこの同じ形式を使用し、新しいデータセットで変更されるのは、データセットの名前のみであることに注意してください。したがって、たとえばfinancial_dataという名前の別のデータセットを操作している場合、コードは次の様になります。

sns.lineplot(data=financial_data)

図のサイズやグラフのタイトルなど、変更したい追加の詳細がある場合もあります。それらの各オプションは1行のコードで簡単に設定できます。

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

# Add title
plt.title("Daily Global Streams of Popular Songs in 2017-2018")

# Line chart showing daily global streams of each song 
sns.lineplot(data=spotify_data)
console
<AxesSubplot:title={'center':'Daily Global Streams of Popular Songs in 2017-2018'}, xlabel='Date'>

image.png

最初のコードは、図のサイズを14インチ(幅) x 6インチ(高さ)に設定しています。図のサイズをカスタマイズしたい場合は、14と6の値を目的の値に変更してください。

コードの2行目は図のタイトルを設定します。タイトルは引用符("...")で囲む必要があります。

データのサブセットをプロットする

これまで、データセットないの全ての列を折れ線グラフにプロットする方法を学習しました。このセクションでは、列のサブセットをプロットする方法を学習します。

まず、全ての列の名前を表示します。これは1行のコードだけで実行でき、データセットの名前(spotify_data)を書き換えるだけで、任意のデータセットの列名を表示させることができます。

list(spotify_data.columns)
console
['Shape of You',
 'Despacito',
 'Something Just Like This',
 'HUMBLE.',
 'Unforgettable']

次のコードでは、データセットの最初の2つの列のみの折れ線グラフをプロットします。

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

# Add title
plt.title("Daily Global Streams of Popular Songs in 2017-2018")

# Line chart showing daily global streams of 'Shape of You'
sns.lineplot(data=spotify_data['Shape of You'], label="Shape of You")

# Line chart showing daily global streams of 'Despacito'
sns.lineplot(data=spotify_data['Despacito'], label="Despacito")

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

image.png

コードの最初の2行は、図のタイトルとサイズを設定しています。

次の2行はそれぞれ折れ線グラフに線を追加します。「Shape of You」の線を追加する最初の行を見てみましょう。

# Line chart showing daily global streams of 'Shape of You'
sns.lineplot(data=spotify_data['Shape of You'], label="Shape of You")

このコードは全ての列をプロットした際のコードと非常によく似ていますが、いくつか大きな違いがあります:

  • data=spotify_dataを設定する代わりにdata=spotify_data['Shape of You']を設定しています。一般的に、1つの列のみをプロットするには、列名をシングルクオテーションで囲み、角括弧で囲むこの形式を使用します。
  • また、凡例に線が表示されるようにlabel="Shape of You"を追加し、対応するラベルを設定します。
  • 最後の行のコードは、水平軸(x軸)のラベルを変更します。必要なラベルは引用符("...")で囲まれます。
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?