0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Excelにあるデータをmatplotlibを使って円グラフで並べたい場合

Posted at

やりたいこと

以下のようなデータExcelに入っている時に、A部・B部・C部のレベルの内訳をそれぞれ円グラフで示したいのです。

image.png

ソリューション

matplotlibを使います。もっといい書き方がありそうですが。

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

# 必要なモジュールのインポート
import matplotlib.pyplot as plt
import japanize_matplotlib  # <- これ
import numpy as np
import pandas as pd

# 不要な警告を非表示にする
import warnings
warnings.filterwarnings('ignore')

# 入力Excelのファイル名、シート名
in_file = 'data.xlsx'
in_sheet1 = 'リスト'

#----------
# Excelの読込
df_1 = pd.read_excel(in_file, sheet_name=in_sheet1, index_col=0, header=0)
df_1 = df_1.drop('合計')

print(df_1)


# RGB値での色の指定(0から255の値)
colors = [
    (255, 170, 180),  # 赤
    (255, 255, 128),  # 黄
    (140, 255, 140),  # 緑
    (128, 192, 255),  # 青
    (128, 128, 128)   # 灰色
]

# RGB値を0から1にスケーリング
colors = [(r / 256, g / 256, b / 256) for r, g, b in colors]

# グラフの設定
pie_num = len(df_1.columns)
fig, axes = plt.subplots(1, pie_num)
fig.suptitle('レベル分布')

for i in range(pie_num):
    axes[i].pie(df_1[df_1.columns[i]], labels=df_1.index, startangle=90, colors=colors, counterclock=False, labeldistance=None)
    axes[i].axis('equal')  # 円を円形に保つ
    axes[i].set_title(df_1.columns[i])


# グラフを表示
plt.show()

とりあえず出力されたので、よかったです。今後コードは改善予定。

(おわり)

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?