1. 왜 이걸 해야 할까?
엑셀 차트를 자동으로 만들었지만, 매출액과 프로젝트 수의 단위 차이 때문에 프로젝트 수 막대가 거의 보이지 않을 수 있습니다.
이럴 때는 보조 축을 사용해 시각적 균형을 맞추고, 각 부서별 색상까지 입혀서 한눈에 들어오는 차트를 완성할 수 있습니다.
✅ 부서별로 차트를 자동 생성하고 ✅ 보조 축 + 색상까지 자동으로 지정해 보고서 품질을 획기적으로 향상시켜 봅시다! ---
2. 사용 라이브러리
pip install pandas xlwings
- pandas: 부서별로 데이터 나누기 - xlwings: 엑셀 차트 조작 (보조 축 + 색상 자동화) ---
3. 실습 목표
- 엑셀 파일:
sample1.xlsx
- 열: 이름, 부서, 매출액, 프로젝트수 등
- 목표: 부서별 차트를 자동 생성하고, 색상 + 보조축 적용
---
4. 부서별 색상 지정 예시
{
'개발부': (102, 153, 255), # 파랑
'영업부': (255, 102, 102), # 빨강
'재무부': (255, 204, 102), # 주황
'인사부': (153, 204, 0), # 연두
'기획부': (204, 153, 255) # 보라
}
---
5. 전체 코드
import pandas as pd
import xlwings as xw
# 1. 파일 경로 설정
file_path = 'C:/Users/YourName/Desktop/엑셀자동화/sample1.xlsx'
save_path = 'C:/Users/YourName/Desktop/엑셀자동화/sample1_부서별차트_색상보조축.xlsx'
# 2. 데이터 불러오기
df = pd.read_excel(file_path)
# 3. 저장용 엑셀 생성
df.to_excel(save_path, index=False)
# 4. 엑셀 앱 실행
app = xw.App(visible=True)
wb = app.books.open(save_path)
sheet = wb.sheets[0]
# 5. 색상 매핑
color_map = {
'개발부': (102, 153, 255),
'영업부': (255, 102, 102),
'재무부': (255, 204, 102),
'인사부': (153, 204, 0),
'기획부': (204, 153, 255)
}
# 6. 부서별 차트 생성 및 색상/보조축 설정
start_row = df.shape[0] + 5
for idx, dept in enumerate(df['부서'].unique()):
temp_df = df[df['부서'] == dept][['이름', '매출액', '프로젝트수']]
row_offset = start_row + 25 * idx
sheet.range(f'A{row_offset}').value = temp_df
data_range = sheet.range(f'A{row_offset}').expand()
chart = sheet.charts.add()
chart.chart_type = 'column_clustered'
chart.set_source_data(data_range)
chart.top = data_range.top
chart.left = data_range.left + 350
chart.width = 420
chart.height = 300
try:
chart_obj = chart.api[0].Chart
# ✅ 보조축 설정
chart_obj.SeriesCollection(1).AxisGroup = 1 # 매출액 - 기본축
chart_obj.SeriesCollection(2).AxisGroup = 2 # 프로젝트수 - 보조축
# ✅ 색상 설정 (매출액 막대에만 적용)
rgb = color_map.get(dept, (0, 0, 0))
chart_obj.SeriesCollection(1).Format.Fill.ForeColor.RGB = rgb[0] + (rgb[1] << 8) + (rgb[2] << 16)
print(f"🎨 {dept} 차트 생성 및 색상/보조축 적용 완료")
except Exception as e:
print(f"⚠️ {dept} 차트 처리 중 오류: {e}")
# 7. 저장 및 종료
wb.save()
wb.close()
app.quit()
print("✅ 모든 부서 차트 자동 생성 및 설정 완료!")
---
6. 실행 결과
- 각 부서별로 차트가 자동 생성됨 - 매출액은 기본 축으로, 프로젝트수는 보조 축으로 표시됨 - 부서마다 정해진 색상이 매출 막대에 적용되어 시각적으로 한눈에 들어옴 ---
7. 실무 팁
- 시리즈가 많아질 경우, 색상만 달라도 시각적 가독성이 확 올라갑니다.
- 보조축은 꼭 필요한 경우에만 사용해야 복잡하지 않습니다.
'Python - 자동화' 카테고리의 다른 글
[19편] 엑셀 데이터 기반 파워포인트 자동 생성 - 텍스트 + 표 자동 삽입 보고서 (0) | 2025.05.19 |
---|---|
[17편] 엑셀 차트를 PDF & PNG 이미지로 자동 저장하기 - 고화질 보고서용 자료 추출 (0) | 2025.05.17 |
[15편] 한 번에 여러 개의 엑셀 차트 자동 생성하기 - 부서별 보고서 실전 자동화 (0) | 2025.05.15 |
[14편] 엑셀 파일을 직접 열어 "부서별 매출액 그래프" 자동 생성하기 - 실무용 엑셀 자동화 실습 (0) | 2025.05.14 |
[13편] 필터링된 추출 결과 파일만 골라 하나의 통합 파일로 자동 저장하기 - "추출 결과 전용" 통합! (0) | 2025.05.13 |