[Python] pandas라는 라이브러리를 사용하여 CSV 파일을 읽고 원형 차트를 만듭니다.
오늘의 주의(복습)는, 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 파일을 읽습니다.
이런 원형 차트를 만들어 붙여넣고 싶습니다.
PieChart 객체
원형 차트를 만들려면 PieChart 개체를 사용합니다.
그래프를 만드는 방법 자체는 막대 그래프와 동일하지만
조심하는 포인트가 2점 있습니다.
둘 다 원형 차트를 만드는 경우 중요한 포인트라고 생각합니다.
원형 차트에 표시할 순서
DataFrame.sort_values(by='ソートする項目', ascending=昇順は「True」,降順は「False」)
원형 차트로 데이터를 확인하려면
차지하는 비율이 큰 것부터 순서대로 표시하고 싶기 때문에
CSV 데이터를 붙이기 전에 데이터를 정렬하고 싶습니다.
그래서 위의 DataFrame.sort_values 메서드를 사용하여 정렬합니다.
각 데이터의 비율 표시
pie.dataLabels = DataLabelList()
pie.dataLabels.showPercent = True
원형 차트는 기본적으로 비율 표시가 되어 있지 않은 것 같습니다.
표시하려면 PieChart 객체의
DataLabelList.showPercent 속성을 True로 설정합니다.
최종 코드
import pandas as pd
from openpyxl import Workbook
from openpyxl.chart import PieChart, Reference
from openpyxl.chart.label import DataLabelList
from openpyxl.utils.dataframe import dataframe_to_rows
wb = Workbook()
ws = wb.active
# CSVファイル読込み
df = pd.read_csv('売上.csv', encoding='utf-8')
# データを降順でソート
df = df.sort_values(by='1月', ascending=False)
for row in dataframe_to_rows(df, index=None, header=True):
# データを1行ずつ追加
ws.append(row)
# 円グラフを選択
pie = PieChart()
# 円グラフのスタイル設定
pie.style = 2
# グラフのデータ範囲を設定
data = Reference(ws, min_col=2, min_row=2, max_row=ws.max_row)
# ラベルの範囲を設定
labels = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row)
# グラフにデータを追加
pie.add_data(data)
# 円グラフのラベルを追加
pie.set_categories(labels)
#割合をパーセント表示
pie.dataLabels = DataLabelList()
pie.dataLabels.showPercent = True
pie.title = '部門別売上'
# 棒グラフをシートに追加
ws.add_chart(pie, 'A9')
wb.save('部門別売上_円グラフ.xlsx')
어떻게든 할 수 있었습니다. 정렬은 사용하기 쉬운 방법이므로
일찍 알 수 있어서 좋았습니다.
덤 pie.style의 종류
pie.style의 경우,
1 ~ 48까지의 정수 값을 지정하여 스타일을 변경할 수 있습니다.
목록과 같은 것을 찾을 수 없습니다.
라는 것으로, 상기의 응용으로 이런 것을 만들었습니다.
import pandas as pd
from openpyxl import Workbook
from openpyxl.chart import PieChart, Reference
from openpyxl.chart.label import DataLabelList
from openpyxl.utils.dataframe import dataframe_to_rows
wb = Workbook()
ws = wb.active
# CSVファイル読込み
df = pd.read_csv('売上.csv', encoding='utf-8')
# データを降順でソート
df = df.sort_values(by='1月', ascending=False)
for row in dataframe_to_rows(df, index=None, header=True):
# データを1行ずつ追加
ws.append(row)
for i in range(1, 49):
pie = PieChart()
pie.style = i
data = Reference(ws, min_col=2, min_row=2, max_row=ws.max_row)
labels = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row)
pie.add_data(data)
pie.set_categories(labels)
pie.dataLabels = DataLabelList()
pie.dataLabels.showPercent = True
pie.title = f'{i}'
ws.add_chart(pie, f'A{(i-1)*16+9}')
wb.save('部門別売上_円グラフ一覧.xlsx')
시험에 만들어 보았습니다만, 의외로 재미있습니다.
개인적으로는 스타일 「10」이 마음에 드는 것입니다.
Reference
이 문제에 관하여([Python] pandas라는 라이브러리를 사용하여 CSV 파일을 읽고 원형 차트를 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rihu-do/items/93eacd8a64f8f7f3dcfa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import pandas as pd
from openpyxl import Workbook
from openpyxl.chart import PieChart, Reference
from openpyxl.chart.label import DataLabelList
from openpyxl.utils.dataframe import dataframe_to_rows
wb = Workbook()
ws = wb.active
# CSVファイル読込み
df = pd.read_csv('売上.csv', encoding='utf-8')
# データを降順でソート
df = df.sort_values(by='1月', ascending=False)
for row in dataframe_to_rows(df, index=None, header=True):
# データを1行ずつ追加
ws.append(row)
# 円グラフを選択
pie = PieChart()
# 円グラフのスタイル設定
pie.style = 2
# グラフのデータ範囲を設定
data = Reference(ws, min_col=2, min_row=2, max_row=ws.max_row)
# ラベルの範囲を設定
labels = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row)
# グラフにデータを追加
pie.add_data(data)
# 円グラフのラベルを追加
pie.set_categories(labels)
#割合をパーセント表示
pie.dataLabels = DataLabelList()
pie.dataLabels.showPercent = True
pie.title = '部門別売上'
# 棒グラフをシートに追加
ws.add_chart(pie, 'A9')
wb.save('部門別売上_円グラフ.xlsx')
pie.style의 경우,
1 ~ 48까지의 정수 값을 지정하여 스타일을 변경할 수 있습니다.
목록과 같은 것을 찾을 수 없습니다.
라는 것으로, 상기의 응용으로 이런 것을 만들었습니다.
import pandas as pd
from openpyxl import Workbook
from openpyxl.chart import PieChart, Reference
from openpyxl.chart.label import DataLabelList
from openpyxl.utils.dataframe import dataframe_to_rows
wb = Workbook()
ws = wb.active
# CSVファイル読込み
df = pd.read_csv('売上.csv', encoding='utf-8')
# データを降順でソート
df = df.sort_values(by='1月', ascending=False)
for row in dataframe_to_rows(df, index=None, header=True):
# データを1行ずつ追加
ws.append(row)
for i in range(1, 49):
pie = PieChart()
pie.style = i
data = Reference(ws, min_col=2, min_row=2, max_row=ws.max_row)
labels = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row)
pie.add_data(data)
pie.set_categories(labels)
pie.dataLabels = DataLabelList()
pie.dataLabels.showPercent = True
pie.title = f'{i}'
ws.add_chart(pie, f'A{(i-1)*16+9}')
wb.save('部門別売上_円グラフ一覧.xlsx')
시험에 만들어 보았습니다만, 의외로 재미있습니다.
개인적으로는 스타일 「10」이 마음에 드는 것입니다.
Reference
이 문제에 관하여([Python] pandas라는 라이브러리를 사용하여 CSV 파일을 읽고 원형 차트를 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rihu-do/items/93eacd8a64f8f7f3dcfa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)