본문 바로가기
[파이썬]/[파이썬]엑셀

[파이썬_엑셀]6-1. 파이썬으로 엑셀차트 만들기(Openpyxl)

by abooda 2022. 6. 3.
반응형

[파이썬_엑셀][6-1. 파이썬으로 엑셀차트 만들기-블로그 요약]

파이썬의 Openpyxl로 엑셀의 차트를 만드는 방법을 설명함.

[파이썬_엑셀]6-1. 파이썬으로 엑셀차트 만들기   Openpyxl

이번에는 엑셀로 작성된 표를 불러와서 차트로 만드는 방법에 대해서 알아 보겠습니다.

(Openpyxl에서 제공하는 차트는 Line(라인), 원, 분산, 도넛등 다양한 차트가 있습니다.)

(자주 사용하는 Line(라인)차트를 가지고 진행하겠습니다.)

 

이번에 차트를 만들면서 사용한 라이브러리 입니다.

 

1. 기초작업: 파이썬으로 파일 불러오기(반복)

파이썬을 통해서 차트를 만드는 방법에 대해서 알아 보겠습니다.

하기와 같은 두가지 방법이 있는데 저는 2번째 방법으로 진행 할 예정입니다.

새로운 파일에 차트를 만들더라도, 불러올 파일에 있는 표는 자동적으로 불러오게 되어 있음.

즉, 차트만 만드는 것이 아니라 표를 가져오고 표 근처에 차트를 만드는 방식임.

 

1. 파일 불러오기 -> 불러올 파일에 차트만들기 -> 불러온 파일에 덮어서 저장하기

2. 파일 불러오기 -> 새로운 파일에 차트만들기 -> 새로운 파일을 저장하기

 

1. 불러올 파일의 위치 지정

2. Openpyxl을 통해서 엑셀파일을 열기

3. 불러온 Workbook의 Sheet 확인

[잠깐만!!]

하기와 같은 에러가 발생 했을 때?

DeprecationWarning: Call to deprecated function get_sheet_names 

(Use wb.sheetnames)

 

: 에러는 아니지만 과거명령어를을 사용했을 시 발생되는 부분이다.

  신버전을 사용하면 해당 문제는 해결됨.

 

4. 확인된 시트이름을 통해서, 시트를 지정하기

    -. 해당 시트에서 내가 불러올 데이터를 가지고 옴.

가져올 시트에 작성된 표

 

2. 불러온 엑셀파일로 차트만들기

5. 엑셀시트에 차트 만들기

    -. 크게 5가지 단계로 구분하여 차트를 만들 예정입니다.

    (하기 파이썬으로 작성한 내용은 5가지 단계를 전부 포함한 코드입니다.)

    1) 기본적인 차트 생성(데이터 지정, 차트이름 명명)

  -. 사용할 Line(라인)차트를 지정함.

  -. 사용할 데이터의 제목과 데이터의 범위를 설정함.

  -. 범주의 범위를 지정하고 범주를 사용하기로 설정함.(범주라는 명칭이 맞는지는 잘 모름)

  -. 차트의 가로축과 세로축의 제목을 지정함.

  -. 중간에 add_data(data_i1, titles_from_data=True) 항목은 데이터를 차트에 넣어주는 항목임.

    2) Line(라인)차트의 스타일을 지정

  -. Line(라인)차트의 스타일을 설정함.(스타일 종류는 추후에 상세 설명 진행)

    3) 차트의 라인에 레이블을 추가하기

  -. Line(라인)차트에서 Line(라인)에 해당 값 및 Line(라인)의 종류를 보여줌.

    4) Line(라인)에 Marker(마커)추가하기

  -. Marker(마커)를 사용할 Line(라인)을 지정하고 스타일을 변경할 수 있음.

  -. graphicalProperties.line.noFill은 Line(라인)차트에서 라인을 사용 할거지 말건지 결정.

  (Marker(마커)를 설정하지 않으면 그냥 라인으로 표시됨.)

    5) 차트의 크기와 위치를 지정

  -. Line(라인)차트의 크기를 지정함.

  -. 엑셀내에서 Line(라인)차트가 생성될 위치를 지정함.

[잠깐만!!]

차트의 크기를 지정하는 항목에서 과연 숫자는 무엇을 의미하는가?

 

Height = 1 --> 약 1.8cell / Height = 9 --> 9 X 1.9 = 약 17.1 cell

Width = 1 --> 약 0.6cell / Height = 17 --> 30 X 0.6 = 약 18 cell

 

8. 파일 위치를 지정하고 저장하기

 

 

*** Your memories make your destiny ***

반응형

댓글