
どうもこんにちは夫です
今回はpythonでパレート図をさくっと作成する方法を紹介します。
多くのビジネスシーンでは様々なグラフを使うことが多くその中でも棒グラフが多く使われているでしょう。
その中でも有用性の高いパレート図ってやつを作っていきます。
細かい描写とかは抜きで超シンプルなので、とりあえず割合とかをざっくり確認したい!ってときに使って見てください。
パレート図とは
パレート図はこんなやつです。

左軸に数値、右軸に比率。
そして数値を多い順に左から棒グラフを並べて右軸の比率で割合がパッとみで分かるという代物です。
仕事上で製品の品質管理をすることが多くその中で最も使用しているのがパレート図でした。
職場で発生している問題の中から何が一番多く割合で占めているのかを調べ、そこから問題を解決していくための最初のステップで使われます。
エクセルでも簡単に作れますがpythonでのグラフ描写の練習になるかと思ったので今回紹介していきます。
始める前に
実行する環境は「Google Colaboratory」です。
これはブラウザ上で実行できて環境構築不要でGoogleのアカウントさえあればすぐに使うことができるのでお勧めです。
無料のGPUも使えます。
ではやっていきます。
今回のデータは例として「友達のお年玉のデータ」でやっていきます。
ではやっていきましょう。
まずはデータの準備をします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import numpy as np friend = ["tanaka","suzuki","yamada","sato","other"] #リスト型で友達を並べる money = [139400,22000,15000,7550,45000] #友達のお年玉一覧 ls = np.array(money) #numpyのarray関数でお年玉のデータを並べる total = np.sum(money) #お年玉の金額合計 percentage = money / total cum = np.cumsum(percentage) #累積 |
これを入力したらshift+enterを押すとコードの実行をします。

画像の左上にある三角のマークからでも実行できます。
ここでは代入しかしてないので特に何か表示したりはしてないのでエラーさえ出ていなければ大丈夫だと思います。
とりあえず確認で出力します。

合計と累積を出力できたのでOKです。
次はグラフ描写をしていきましょう。
みんな大好きmatplotlibを使います。
1 2 |
import matplotlib.pyplot as plt |
matplotlibをインポートします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
fig, ax1 = plt.subplots() ax2 = ax1.twinx() #ax1とax2を合体 ax1.bar(friend, money) #ax1にお年玉のデータ ax1.set_ylim(0, total) #ax1のデータ下限を0、上限を合計 ax2.plot(friend, cum, marker="D") #ax2は累積 ax2.set_ylim(0, 1) #累積なので下限を0、上限を1 ax1.grid(axis="y") #見づらいのでY軸に線を引く plt.show() #表示 |
これで実行してみます。

これで完了ですがパレート図本来の形ではないので少し見づらいです。
累積の線の位置やグラフ同士の感覚などまだまだ手の加える必要のある箇所はありますが今回はシンプルに簡単にということで以上にしておきます。

(これ以上はめんどくさいなんて言えない…)
ググれば出てくるのでよかったら調べて見てください。
コメント