Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

【第14回】matplotlibを用いた円グラフの作成

はじめに

matplotlibは様々な種類のグラフを描画するライブラリで、描画できるのは主に2次元のプロットですが、3次元プロットの機能も追加されてきています。

例えば以下の様なグラフを作成することができます。

本記事では、matplotlibを用いた円グラフの作成方法を確認していきます。

SAMURAI TERAKOYA

 

1. 基本的な描画方法

plt.pie()で円グラフを描画していきます。

 

 

2. ラベルの描画

ラベルの描画にはplt.pie()の引数にlabelsを設定します。

 

3.  データの開始を90度スタートに変更

上記グラフでは0度からlabel1、label2となっていましたが、ここでは90度の位置から始まるように設定します。plt.pie()の引数にstartangle=90を設定します。



4. 時計回り順に並び替える

上記のグラフはlabel1、label2・・・と反時計回りにデータが並んでいます。ここではこの並びを時計回りに変更します。時計回りにするには、plt.pie()の引数にcounterclock=Falseを設定します。


5. 要素の強調

ここではある要素を強調させるために、ブロックを少しずらして表示させます。以下の例のように、5つの要素あるexplodeリストを生成し、plt.pie()の引数にexplodeを設定します。explodeリストの3つ目の要素が0.2にになっているように、第3要素を20%ずらして表示させることができます。

 

6. 要素の色を変更

次は要素の色を変更します。色の変更にはplt.pie()の引数にcolorsを設定します。

設定できる色についてはこちらの記事を参照してください。

 

7. 円グラフに影をつける

円グラフに影を付けるには、plt.pie()の引数にshawdow=Trueを設定します。

 

8. ラベルの位置を変更

次に、ラベルの位置を変更します。現在は円の外側にラベルが表示されていますが、ここでは円の内側にラベルが表示されるよう変更します。ラベルの位置変更にはplt.pie()の引数にlabeldistanceを設定します。1よりも大きいと円の外側、1より小さいと円の内側にラベルが表示されます。

 

9. 要素の枠線の色と太さを変更

次に、各要素の枠線の色と太さを変更していきます。wedgepropsを辞書型で用意し、要素に枠線の太さを表すlinewidthと、枠線の色のedgecolorを設定します。

以下の例では枠線の太さ:2、枠線の色:白を設定しています。

 

10. ラベルの色と太さの変更

ラベルの色と太さの変更には、plt.pie()の引数にtextpropsを設定します。以下の例ではラベルの色を白、太字に変更しています。

 

11. 各要素の割合を表示

次に、各要素の割合(%)を表示します。表示させるには、plt.pie()の引数にautopctを設定します。割合を小数点1桁まで表示させるには%1.1f%%を、2桁まで表示させるには%1.2f%%をautopctに設定します。

 

12. 各要素の割合の表示位置の変更

次に各要素の割合の表示位置の変更します。表示位置の変更にはplt.pie()の引数にpctdistanceを設定します。pctdistanceに設定する値は、円の中心側にしたい場合は0に近い値、円周側に設定したい場合は1に近くします。

 

13. ドーナッツグラフの作成

円グラフの真ん中が空白になっているドーナッツグラフの作成方法を示します。 plt.Circleの部分で中心 (0,0) に 60% の大きさで円を描画しています。


以下のような2重ドーナッツグラフを作成することもできます。以下の例はeMAXIS Slim 全世界株式という投資商品の国の構成比率を表しています。

 

オススメ書籍

Pythonによるあたらしいデータ分析の教科書

Python3エンジニア認定データ分析試験の教科書にもなっている書籍で、データ分析に必要なPythonの基礎手法を身に付けることができます。具体的には、numpyとpandasを用いたデータの前処理、matplotlibを用いたデータのグラフ化、scikit-learnを用いた機械学習の基礎記述方法を身に付けることができます。これ一つで基礎はバッチリで、実務でも十分活用できると思います。個人的には見やすい書籍でした。

データサイエンス教本 Pythonで学ぶ統計分析・パターン認識・深層学習・信号処理・時系列データ分析

こちらの書籍は初心者から少し記述できるようになった人、かつ数学的な理論と一緒にPythonの記述方法を理解したい方にオススメです。統計分析、パターン認識、深層学習、信号処理、時系列データといった幅広く実務で使用する手法を学びたい方にもオススメです。

東京大学のデータサイエンティスト育成講座 ~Pythonで手を動かして学ぶデ―タ分析~

こちらの基礎を抑えながら実務で必要なPython記述法を学べる書籍です。基礎を一つ一つ抑えるというよりも実務で活用できるように必要な知識を身に付けられると感じました。これ一冊あれば十分かなと思いました。

 

スキル修得&転職

 近年、DXの進展に伴うデジタル人材の需要の高まりに追いついていない状況が続いていると経済産業省がホームページで記載している通り、DX人材、IT人材が不足しているのが現状です。さらにコンピュータの性能向上やAI技術の発展により、よりDX人材、IT人材の需要が高まってきます。さらには、今後の長期間安定して職がある業種とも考えられます。

以下の求人では、IT業界の転職や、IT未経験だけどIT人材を志望する就活を支援してくれます。無料で会員登録もできるので、まずは登録だけでもして様子を見てみてはいかがでしょうか?

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

 

おわりに

本記事では、matplotlibを用いた円グラフの作成方法を確認しました。アンケート結果などをグラフ化する際に円グラフを使用すると思いまます。本記事の内容も基本的な内容なのでぜひ覚えて使いこなせるようにしましょう。