【キノカレッジ|プログラミング入門クラス|22年11月(2)】データの可視化(Matplotlib&Seaborn)について学ぼう

■ 課題の概要・背景

概要

  • Seabornを使ったデータの可視化
  • Matplotlibを使ったデータの可視化
  • サンプルデータを使ったデータの可視化

背景

  • Pythonの最低限の基礎力を身につける
  • 自走してコードの勉強や業務効率化などに挑戦できるようなスタートラインに立つ
  • 業務効率化クラス、または機械学習実践クラスを受講できるレベルになる

注釈

出題はキノクエスト内のMatplotlib&Seaborn入門講座
及び第1回講座の中から出題します。
まだキノクエストの課題に取り組んでいない、今回扱うメソッドが初見でおられる方は
課題の前に、キノクエストで学習を進めましょう。

また、第1回に引き続き企業の財務状況の動向2019年同月比事業者割合の推移.csvを用います

■ 成果物

ipybnbファイルとpngファイルを提出する
問1

  • pro_nyumon_1102_01.ipynb

問2

  • pro_nyumon_1102_02.ipynb
  • taxis_yellow.jpg

問3

  • pro_nyumon_1102_03.ipynb
  • bz_auto_1102.jpg

■ 問1 seabornを使った可視化に取り組もう

  1. seabonのモジュールをsnsという名前で読み込みましょう
  2. train = sns.load_dataset("taxis")のコードを打ち、trainにデータを格納しましょう
  3. train.head(),train.info()を実行させてデータの中身をみましょう
  4. trainデータをseabornのcatplotメソッドで可視化します。x軸に列名passengersとy軸に列名tipの散布図を作成しましょぅ
  5. 4のコードの上にsns.set_theme(style="darkgrid")を追加して実行してみましょう
  6. trainデータをseabornのboxplotメソッドで可視化します。x軸に列名colorとy軸に列名fareで箱ひげ図を作成しましょう
  7. trainデータをseabornのdisplotメソッドで可視化します。列名totalを描写してみましょう
  8. 7のコードの引数にkde=True, stat="density"を追加し描写してみましょう
  9. trainデータをseabornのpairplotメソッドで可視化してみましょう
  10. 次のコードを実行させて可視化してみましょう
    • sns.pairplot(data = train, vars = ['distance', 'fare', 'passengers'], hue = 'tip')
  11. trainデータをヒートマップ図で可視化します。次のコードを実行させましょう
    • sns.heatmap(data = train.corr(), cmap = 'bwr')
  12. ここまでのipynbファイルをpro_nyumon_1102_01.ipynbというファイル名で提出しましょう

■ 問2 matplotlibを使った可視化に取り組もう

  1. matplot.pyplotモジュールをpltという名前で読み込みましょう。(seabornも読み込みます。)
    ※ %matplotlib inlineも記述しましょう
  2. train = sns.load_dataset("taxis")のコードを打ち、trainにデータを格納しましょう
  3. trainデータをmatplotlibのbarメソッドとpieメソッドで可視化します。列名colorごとの列名passengersの個数を描写します
    1. 変数名yellowを用意します。列名colorのyellowでデータを抽出して格納してください
    2. 変数名yellow_countを用意します。yellowの列名passengersの各要素数の出現回数をvalue_countsメソッドで算出し、sort_indexメソッドで並べ替えをしましょう
    3. plt.bar()の引数にx軸はyellow_count.index、y軸はyellow_count.valuesにして描写しましょう
    4. plt.pie()の引数にxはyellow_count.values、labelsはyellow_count.indexにして描写しましょう
    5. plt.pie()の引数にxはyellow_count.values、 autopctで整数、startangleを90、pctdistanceを1.1にします
    6. 上記の(問3-5)コードに、凡例を追加、yellow_count.indexをラベルとし、右上に表示させましょう
    7. 上記の(問3-6)コードにタイトルも追加しましょう、「yellowタクシーの乗客率」を追加します
    8. 上記の(問3-7)コードで表示される画像を提出しましょう。画像ファイル名はtaxis_yellow.jpg。また、ここまでのipynbも提出しましょう。

■ 問3 実際のデータを使った可視化に取り組もう

  1. pandasをpd、matplot.pyplotをpltとして読み込みましょう
  2. 企業の財務状況の動向2019年同月比事業者割合の推移.csvを読み込み、変数名dfに格納しましょう
  3. df.head(), df.info(), df.shapeでデータフレームの中身を見ましょう
  4. 列名 期間(月次)をdatetime型に変換して、期間(月次)をindexに設定しましょう
  5. 変数名df_all_typeを用意します。列名 業種が"すべての業種"のものを抽出して変数df_all_typeに格納しましょう
  6. df_all_typeをmatplotlibのplotメソッドを使って可視化します
    1. x軸にindex、y軸に列名"事業者割合 [%]"を設定し描写しましょう
    2. 上記(6-1)のコードを変更していきます。まずFigureオブジェクトを作成して、figsize=(16,9)にしましょう
    3. 線グラフの太さをlinewidth=5にします。x軸のタイトルを"期間(月次)",y軸のタイトルを"事業者割合 [%]"にしましょう。各タイトルのfontsize=20です。
    4. 最後にタイトル"2020年1月から2022年3月までのすべての事業者で売上が増加した割合"(fontsize=24)とつけて、画像を保存して提出しましょう
  7. 変数名df_restaurantを用意します。列名 業種が"飲食/娯楽/生活関連サービス"のものを抽出して変数df_all_typeに格納しましょう
  8. df_restaurantとdf_all_typeをplotメソッドを使って複数のグラフで可視化しましょう
    1. 新しいセルに問6-3のコードをコピーして貼り付けましょう
    2. 新しいplt.plotを追加し引数はx軸にdf_restaurantのindex, y軸に"事業者割合 [%]"を指定し描写しましょう
    3. それぞれの線グラフのラベルを追加しましょう。また"2020年1月から2022年3月までのすべての事業者とサービス業で売上が増加した割合"というタイトルの追加もしましょう
    4. 上記の(問8-4)コードで表示される画像を提出しましょう。画像ファイル名はbz_auto_1102.jpg。また、ここまでのipynbファイルも提出しましょう

この課題に対応するキノクエストのレッスン

Matplotlib&Seaborn入門講座 LESSON9

  • 10.Pythonのライブラリ「Seaborn」の使い方を解説します。
    • seabornでカテゴリごとに特定の変量を表した散布図(catplot)
    • seabornで箱ひげ図(catplot)
    • seabornで線形回帰直線(regplot)
    • seabornで複数変量間の相関図(pairplot)

Matplotlib&Seaborn入門講座 LESSON10

  • 11.「Seaborn」で色々なグラフを作成してみる
    • seabornで回帰直線とグラフサイズの変更方法

Matplotlib&Seaborn入門講座 LESSON1

  • 02.【基礎】Matplotlibの基本的な使い方
    • グラフ作成
    • グラフにラベルを追加
    • グラフの色の変更
    • 線グラフの種類の変更
    • グラフタイトルを追加
    • グラフに日本語を表示
    • ひとつのグラフに複数のグラフを表示
    • グラフに凡例を表示

Matplotlib&Seaborn入門講座 LESSON3

  • 04.【基礎編】棒グラフ、積み上げ棒グラフ、2変量棒グラフ
    • 簡単な棒グラフ
    • 棒グラフの棒の太さの変更
    • 棒グラフの色の変更
    • グラフの軸にラベルを追加
    • グラフのサイズを変更
    • 二変量棒グラフの作成
    • 積み上げ棒グラフの作成

Matplotlib&Seaborn入門講座 LESSON7

  • 08.Pythonを使った複数グラフの作成方法【subplot , subplots】