仕事で棒グラフを作成することはありませんか?この動画では、PythonのライブラリMatplotlibで棒グラフを作成する方法について解説をします。
▼目次
00:00 はじめに
01:21 ライブラリのインポート
02:07 データの読み込み
04:11 Pandasで月ごとの集計
05:06 売上金額を棒グラフに
06:08 X軸の表示の変更
08:10 グラフの色の変更、グラフタイトルと軸のラベルの追加
09:24 氏名ごとの売上金額の集計とPandas.DataFrameのplotメソッドで棒グラフの作成
11:33 Pandas.DataFrameのplotメソッドで水平グラフの作成
11:54 氏名ごと商品分類ごとの集計と棒グラフの作成
14:20 Pandas.DataFrameのplotメソッドで積み上げ棒グラフの作成
14:37 Pandas.DataFrameのplotメソッドで積み上げ水平棒グラフの作成
15:03 おわりに
▼おすすめ動画
Matplotlib & Seaborn 入門講座(再生リスト)
Python超入門コース
Pandas入門コース
仕事の自動化の再生リスト
プログラミング初心者がPythonを完全無料で学習する方法
株のデータ分析
たった1分でPythonのプログラミングを始める|GoogleColaboratoryの使い方
▼文字書き起こし
早速、ライブラリをインポートする記述をしましょう。
matplotlibのPyplotをpltという名前でインポートします。
また、matplotlibの中のdatesを使うことで、時系列グラフの軸ラベルを自由に変更することができます。
こちらはdtという名前でインポートしておきます。
そして、今回はpandasを使ってデータ加工をします。 pdという名前でインポートしましょう。
pandasを使うことで、csvやexcelファイルなどのデータを簡単に読み込み、効率的にデータを加工することができます。
最後のこの記述は、ノートブック内にグラフを表示させるために必要です。
実行します。
インポートが完了しました。
## データ読み込み
“`python
df = pd.read_csv(‘data.csv’)
“`
続いて、pandasのread_csvメソッドを使ってcsvファイルを読み込む記述をします。
dfという変数に、あらかじめダウンロードいただいた「data.csv」というファイルを格納します。
pdドット、readアンダースコア、csvと書いて丸括弧。
丸括弧の中に、読み込むファイル名を書き、シングルコーテーションでくくります。
実行します。
“`python
df.head()
“`
それでは、dfの中身を確認してみましょう。最初の5件を表示します。
データが格納されているようです。
“`python
df.info()
“`
では、データフレームの情報を見てみましょう。
infoメソッドを使用すると、列の名前やそのデータ型、データ数などを知ることができます。
実行します。
売上日という列がありますが、文字列になっていることがわかります。
“`python
df[‘売上日’] = pd.to_datetime(df[‘売上日’])
“`
続いて、データフレームの中の売上日という列を、文字列から日付型に変更しましょう。
pandasのto_datetimeメソッドを使います。
実行します。
“`python
df.info()
“`
もう一度infoで確認してみましょう。
売上日の列が、日付型になっています。
“`python
df2 = df.set_index(‘売上日’)
df2.head()
“`
時系列データでは、データフレームのインデックスが日時のデータになっている必要があります。
従って、日付型に変更した売上日の列をインデックスにします。
時系列データの詳しい扱い方に関しては、pandas入門講座でも解説をしています。
是非そちらもご覧ください。
ここでは、pandasのset index関数を使って売り上げ日の列をインデックスに指定します。
これを、df2という変数に格納しましょう。
実行します。
売上日がインデックスになりました。
## 月ごとの合計データフレーム作成
“`python
sum_df = df2[[‘売上金額’]].resample(‘M’).sum()
sum_df
“`
続いて、グラフを作成しやすいように、データを整理しましょう。
まずは、月ごとの売上金額の合計を算出します。
sumアンダースコアdfという変数に、データを格納します。
先ほど作成したdf2の中の、合計を算出したい列のカラム名「売上金額」を二重括弧の中に記述します。
これで、売上金額の列を取り出したデータフレームができます。
さらに、resampleと書いて丸括弧、月平均を算出したいので、monthの頭文字のMを指定します。
最後に合計を意味するsumと書いて丸括弧です。
作成したsum_dfを表示してみましょう。
実行します。
月ごとの売上金額の合計を算出したデータフレームを作成できました。
## 月ごとの売上棒グラフ
“`python
volume = sum_df[‘売上金額’]
date = sum_df.index
“`
作成したデータフレームを基に、棒グラフを作成してみましょう。
volumeという変数に、先ほど作成した売上金額のカラムを代入します。
dateという変数には、日付型に変更したインデックスを代入します。
実行します。
“`python
plt.figure(figsize=(9,6))
plt.bar(date,volume, width=20)
plt.show()
“`
続いて、棒グラフを作成する記述をします。
今回は、figsizeを9対6としておきます。
棒グラフを意味するbarと書いて丸括弧、丸括弧の第一引数にX軸として先ほど設定した変数のdate、第二引数にY軸としてvolumeと記述します。
このままだとX軸の日付の最終日にだけデータがあることになるので、他の日が空白となってしまいます。
みやすくするために、widthで棒グラフの幅を太くする指定します。
今回は20とします。
実行します。
月ごとの売上金額の合計を示した棒グラフを作成できました。
▼書き起こしブログ
https://kino-code.com/matplotlib_seaborn-05/
▼自己紹介
現在:フリーランス(マーケティング関連の人工知能開発、データ分析や業務自動化などの開発 & コンサルティング)
前職:リクルート
▼SNS
Twitter : https://twitter.com/kino_code/likes
Facebook : https://www.facebook.com/%E3%82%AD%E3%83%8E%E3%82%B3%E3%83%BC%E3%83%89-105693727500005/
Website : https://kino-code.com/
#Python #グラフ #Python可視化 #Matplotlib #Seaborn
コメント
動画内で使われているファイル「data.csv」はどこにあるのでしょうか?webサイト内を探しましたが見当たりません。
いつも勉強させていただいております。サイトで公開していただいているsample.csvファイルに氏名の欄ははないようです。。。社員IDとの読み替えが必要ですね。
いつも有用な動画ありがとうございます。
こちらで使っているcsvなのですが、文字起こしブログに添付してあるものと同様でしょうか?
「氏名」のカラムが見つからず、06以降の一部レッスンが出来ず・・・
私が見落としてるだけでしたら申し訳ありません。