JupyterLabで折れ線グラフをかいてみる

sanagi
2024-05-28
2024-05-28

こんにちは、sanagiです。

最近、業務で初めて機械学習を触ることになりました。データ分析はやったことないので、まぁまぁの初心者です\(^o^)/

その中で、JupyterLabというツールを初めて使ったので紹介します。

JupyterLabとは

ブラウザ上で動作できるデータ分析等向けの対話型開発環境(IDE)です。
例えば下記のようなことができます。

  • グラフや図表を作成してデータを可視化
  • テーブルデータの操作や統計解析、機械学習モデルの構築
  • 機械学習モデルを構築し、トレーニングや評価を行うことができる

Python、C#、Go、Java、JavaScript等様々な言語に対応しています。

公式サイトで、以下のようにブラウザ上でお試しすることもできます。

スクリーンショット 2024-03-29 095329

インストールして起動してみる

インストール

先ほど様々な言語に対応していると書きましたが、今回はPythonを使用していきます。

Anacondaをインストールしている方は、デフォルトでJupyterLabが入っているのでそのまま使用することができます。

Pythonをインストールしている方はpipを使って以下コマンドを実行してください。

pip install jupyterlab

これで完了です!めちゃくちゃ簡単です!

起動

起動は以下コマンドを実行するだけで、自動的にブラウザが立ち上がります。

jupyter lab

こちらも簡単に起動できますね。

早速グラフを作成してみる

まず、プログラムを作成するためにこちらを選択します。

こちらを選択すると、「Untitled.ipynb」という名前のファイルが生成されます。
とりあえず適当に「test.ipynb」という名前に変更して、いろいろ試してみようかなと思います。

グラフの題材としては、毎月の売り上げをグラフに表示させる、という題材で作成してみようと思います。数字は架空の値です。

import

まずは、必要なライブラリをimportしましょう。今回必要なライブラリはpandas、matplotlibの2つです。このように書きます。

import pandas as pd
import matplotlib.pyplot as plt

ライブラリがインストールされていない場合は以下をコンソール上で実行し、インストールする必要があります。

pip install pandas
pip install matplotlib

プロットするデータを作成

このようなデータをプロットしようと思います。


まずはx軸となる月単位の配列を作成しましょう。

以下のソースで月単位の配列を取得することができます。

# 月ごとの配列を作成
date_range = pd.date_range(start='2024-01-01', end='2024-12-31', freq='ME')
# yyyy/mmの表記に修正
month = date_range.strftime('%Y/%m')

ここでのポイントは、pd.date_range()のオプションでfreq='ME'と書くと、月ごとに区切って配列を作ってくれる点ですね。

次に売上金額データもプラスして、プロットする全データを作成します。

# プロットするデータをdictに入れる
data = {
    'month': month,
    'sales_amount': [3100, 4050, 3000, 4500, 4200, 5100, 5200, 4500, 5000, 5500, 5600, 5800]
}

# PandasのDataFrameオブジェクトに変換
df = pd.DataFrame(data)

ここでのポイントはdictのデータをPandasのDataFrameオブジェクトに変換する点です。
PandasのDataFrameは、テーブル形式のデータを操作するためのオブジェクトで、行と列のラベルが付いたデータを格納しています。これに格納することによって、Pandasの機能を使えるようになりデータ操作が簡単にできるようになります。

プロットデータであるdfをプリントすると以下のような配列が作成されています。

折れ線グラフをプロットする

いよいよグラフをプロットしてみます!
以下のソースを追記します。

# グラフの大きさを指定
plt.figure(figsize=(10, 6))
# グラフのタイトルを追加
plt.title('sales amount')
# X軸のラベルを追加
plt.xlabel('month')
# y軸のラベルを追加
plt.ylabel('amount')
# グラフをプロット
plt.plot(df['month'], df['sales_amount']

出力結果が以下のような感じです!おぉ、ちゃんと表示されてますね。

ちなみにグラフの大きさを指定する「plt.figure(figsize=(10, 6))」の部分ですが、図の横幅が10インチ、縦幅が6インチという意味になっています。こうしないとX軸の月表記がダブってしまい、非常に見えずらくなってしまったのでこうしています。大きさはグラフによって、適宜変えていくと良いですね。

おわり

どうでしたでしょうか?

グラフで表示させると配列データがとても分かりやすくなりますね。JupyterLabではいろんなグラフがかけるので、皆様も遊んでみてください。

最後にソース全文を載せておきます。

import pandas as pd
import matplotlib.pyplot as plt

# 月ごとの配列を作成
date_range = pd.date_range(start='2024-01-01', end='2024-12-31', freq='ME')
# yyyy/mmの表記に修正
month = date_range.strftime('%Y/%m')
# プロットするデータをdictに入れる
data = {
    'month': month,
    'sales_amount': [3100, 4050, 3000, 4500, 4200, 5100, 5200, 4500, 5000, 5500, 5600, 5800]
}
# PandasのDataFrameオブジェクトに変換
df = pd.DataFrame(data)

# グラフの大きさを指定
plt.figure(figsize=(10, 6))
# グラフのタイトルを追加
plt.title('sales amount')
# X軸のラベルを追加
plt.xlabel('month')
# y軸のラベルを追加
plt.ylabel('amount')
# グラフをプロット
plt.plot(df['month'], df['sales_amount'])