【Python】pandas라는 라이브러리를 사용하여 CSV 파일을 읽어 쌓아 막대 그래프를 작성한다.

파이썬을 사용하여 Excel 파일 작업을 공부하고 있습니다.
오늘의 주의(복습)는, CSV의 로드와 그래프 작성에 관한 계속입니다.
파이썬에서 Excel을 조작하기 위해 openpyxl이라는 패키지를 사용하고 있습니다.

판매.csv
部門,1月,2月,3月
商品A,600,700,800
商品B,4100,3800,4500
商品C,2900,1800,3000
商品D,800,900,1000
商品E,600,550,720

이전과 마찬가지로 위와 같은 CSV 파일을 읽습니다.



이런 적층 막대 그래프를 만들어 붙이고 싶습니다.

BarChart 객체의 grouping 속성과 overlap 속성


bar.grouping = 'stacked'
bar.overlap = 100

기본적으로 막대 그래프를 만드는 것과 같습니다.
grouping 속성을 'stacked', overlap 속성을 100
그렇게하면 쌓아 올려 막대 그래프가됩니다.
이번 표는 또 하나의 연구가 필요합니다.

그래프의 참조 데이터를 행/열로 전환


bar.add_data(Referenceオブジェクト, from_rows=True, titles_from_data=True)

우선, 원본 데이터의 범위를 변경하십시오.
위와 같이 "from_rows = True"를 작성하면
그래프의 참조 데이터를 행/열로 전환할 수 있습니다.

최종 코드


import pandas as pd
from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference
from openpyxl.utils.dataframe import dataframe_to_rows

wb = Workbook()
ws = wb.active

# CSVファイル読込み
df = pd.read_csv('売上.csv', encoding='utf-8')
for row in dataframe_to_rows(df, index=None, header=True):
    # データを1行ずつ追加
    ws.append(row)

# 棒グラフを選択
bar = BarChart()

# 横棒グラフに設定
bar.type = 'col'

# 積上げ棒グラフに変更
bar.grouping = 'stacked'
bar.overlap = 100

# グラフのデータ範囲を設定
data = Reference(ws, min_col=1, min_row=2,
                 max_col=ws.max_column, max_row=ws.max_row)

# ラベルの範囲を設定
labels = Reference(ws, min_col=2, min_row=1, max_col=ws.max_column)

# グラフにデータを追加(参照方法を行列で切り替え)
bar.add_data(data, from_rows=True, titles_from_data=True)

# 縦軸のラベルを追加
bar.set_categories(labels)

# 系列ごとにグラフの色を変更
bar.varyColors = True

# 凡例項目の位置を設定
bar.legend.position = 'b'

# 横軸(グラフ上では縦軸)タイトルを追加
bar.x_axis.title = '月度'

# 縦軸(グラフ上では横軸)タイトルを追加
bar.y_axis.title = '売上高(千円)'

# グラフのタイトルを追加
bar.title = '部門別売上高'

# 棒グラフをシートに追加
ws.add_chart(bar, 'A9')

wb.save('部門別売上_積上げ棒グラフ.xlsx')

전회, 전전회와 같은 데이터를 바탕으로 그래프를 만들고 있습니다만
표현 방법으로 대부분의 인상이 바뀌는군요.

어디에서 사용하는 것인지를 생각하면서 작성하면 좋은 느낌이군요.

좋은 웹페이지 즐겨찾기