Python 円グラフを作成する「matplotlib」

 本記事では、下図のような円グラフを横並びで複数作成する雛形コードを載せました。

f:id:HK29:20210607221454p:plain

下図が使用したcsvデータです。

f:id:HK29:20210607222019p:plain

上記数値データは、次のリンク先の値を引用しました。http://www.stat.go.jp/naruhodo/4_graph/shokyu/obi-graph.html

■本プログラム

#!/usr/bin/env python
# coding: utf-8

# In[1]:


import pandas as pd
from matplotlib import pyplot as plt
import japanize_matplotlib
import matplotlib.cm as cm

df = pd.read_csv('産業別就業者数の構成率の推移.csv',
                 sep = ',',
                 encoding = 'cp932')
df


# In[2]:


# 行名を取得
index_name = '年代'
index_data = df[index_name]
index_data


# In[3]:


# 列名を取得
label_data = df.columns[1:].values
label_data


# In[4]:


# 円グラフを描く
fig = plt.figure(dpi=180)

for i, index in enumerate(index_data, start=1):
    print(i, index)
    ax = fig.add_subplot(1, len(index_data), i, title = index)
    x_df = df[df[index_name] == index]
    x_data = x_df[label_data].values[0]
    print(x_data)
    ax.pie(
        x_data,
        labels = label_data,
        autopct = "%.1f%%", # %で表示
        pctdistance = 0.6, # パーセンテージの出力位置
        startangle = 90,
        #explode = [0, 0, 0.1], # 1つ目の要素を10%ずらす
        wedgeprops = {'linewidth': 2, 'edgecolor':"white"}, # 要素間の輪郭に隙間を付ける
        #colors = colors,
    )


# In[ ]:

以上

<広告>