자 여러분 이어서 공부 해봅시다.
이번 포스팅에서는 막대그래프부터 파이차트까지 학습해봅시다.
막대그래프그리기
- plt.bar(x 축값, y 축값, [옵션])
- width : 막대의 너비를 설정합니다. 기본값은 0.8
- bottom : 막대가 시작하는 y축 위치를 설정
- align : 막대의 정렬 방식 'center' or 'edge'
- color : 막대의 색상을 설정 단일 색상 문자열이나 색상 배열을 사용
- edgecolor : 막대 테두리의 색상을 설정
- label : 범례에 사용할 텍스트를 지정
- alpha : 0~1까지의 가중치로 투명도를 정함
- plt.xticks(x값, 눈금값)
- plt.yticks(y값, 눈금값)
간단하게 막대 그래프를 그려봅시다.
- x 축 [2024, 2025 ,2026]
- y 축 [40, 20 ,10]
- x,y 눈금을 표시하십시오.
- 너비는 0.5, 중간 정렬, 색상은 초록색, 검은색, 보라색 순으로 설정하십시오
- 범례는 bar sample로 설정하십시오
네 우리는 이제 수직 막대기에 대해서는 얼만든지 그릴 수 있게 되었습니다.
근데 만약에 여러분의 상사나 의뢰주가
" 아 저희는 수직보다는 수평막대가 좋아요" 할 수도있기 때문에 이번에는 수평 막대를 그려보도록 하겠습니다.
지금 그림 막대 그대로 bar에서 barh로 바꿔 봅시다
barh(y축값, x축값, [옵션])
간단하죠. 다만 barh에서 너비는 사용할 수 없으니 주의하시길 바랍니다.
히스토그램
- 데이터의 분포를 시각적으로 분석할 때 사용
- 특정값들이 얼마나 자주 발생하는지(빈도)를 구간별로 나타내는 데 적합
- 통계 분석 : 시험 점수, 매출 데이터 분포
- 의료 데이터 분석 : 환자의 혈압이나 체온 분포
- 경제 데이터 분석 : 주택 가격, 소득 분포
- 환경 데이터 분석 : 온도, 습도 등의 측정값 분포
히스토그램 그래프 그리기
- plt.hist(배열, [옵션값])
- bins : 데이터를 나눌 구간 수 또는 구간 경계를 지정(정수: 기본10), 배열: 구간 경계를 명시적으로 지정 (예: bins=5 or bins = [1,2,3,4,5])
- range : 히스토그램 구간의 최소값과 최대값을 지정 (예: range=(1.5))
- density : True로 설정하면 빈도 대신 확률 밀도를 표시, 확률 밀도는 각 구간의 면적 합이 1이 되도록 조정된 값
- cumulative : True로 설정하면 누적 히스토그램을 생성 (예: 각 구간까지의 합계)
- histtype : 히스토그램의 스타일을 지정합니다.
- bar : 기본 막대 그래프
- barstacked : 스택된 막대 그래프
- step : 계단 그래프
- stepfilled : 채워진 계단 그래프
간단하게 그려봅시다.
산점도 그리기
- 산점도 란? : 데이터가 점의 형태로 퍼져있는 그래프를 말함
- plt.scatter(x, y, s=None, maker = None, cmap=None, alpha=None)
- s : size(기본값 20)
- c : color (단일색상 또는 배열사용)
- cmap : 색상 배열을 사용할 때 컬러맵을 지정
- viridls, plasma, inferno, coolwarm
간단하게 그려보기
파이차트 그리기
- 파이차트 : 흔히 도넛형 그래프로 파이처럼 생겼다고 해서 파이 그래프라고 불립니다.
- plt.pie(x, [옵션])
- labels : 각 섹션의 이름을 정의 ['A', 'B', 'C'] 처럼 문자열 리스트
- colors : 각 섹션의 색상을 지정
- autopct : 섹션의 비율을 차트에 표시 '%1.1f%%' 형식으로 전달하면 소수점 한 자리까지 비율을 표시함
- startangle : 시작 각도를 설정, 기본값은 0도, (예를 들어 90을 주면 위쪽에서 시작)
- explode : 특정 섹션을 강조하기 위해 섹션을 중심에서 떨어뜨림. [0.1, 0, 0, 0]처럼 배열로 전달합니다.
- shadow : 파이 차트에 그림자를 추가(True 또는 False)
- radius : 파이 차트의 반지름의 크기를 설정. (기본값은 1.0)
- textprops : 텍스트 스타일을 설정하는 데 사용 (예: {'fontsize' : 12, 'color' : blue})
- counterclock : 섹견이 시계 반대방향으로 그려질지 결정 (True or False)
- wedgeprops : 각 섹션의 테두리 속성을 설정 (예:{'edgecolor' : 'black', 'linewidth' : 2})
간단하게 그려봅시다.
보통 강조는 0.1정도만 주어도 충분히 구분이 될정도로 강조 됩니다. 만약에 2개이상의 값을 강조해야 한다면 0.1, 0.2,0.3
이 정도로 하시거나 0.1로 통일하는 것이 그래프에서 크게 벗어나지 않고 가시성이 좋습니다.
위 처럼 colors와 labels와 같이 긴배열은 코드 밖에서 먼저 설정하시고 대입시키는 것이 코드를 작성하는 입장이나, 읽는 입장이나 둘다 편한 코드로 작성할 수 있습니다.
어 근데 우리가 생각하는 도넛 그래프는 이런 것이 아니죠?
가운데가 뻥 뚤려 있어야죠 그럴때는 이제
wedgeprops{"width" : 가중치})
네 여기까지 Matplotilib에 대해서 알아 보았습니다. 간단한 과제들과 함께 다음 포스팅
Seaborn에 대해서 알아 보겠습니다. (솔직히 그래프는 이 seaborn이 편해요 진짜)
과제 (막대 그래프 그리기)
- 다음 데이터를 가지고 결과와 같은 막대그래프를 그리시오.
- categories = ['Category1', 'Category2', 'Category3', 'Category4', 'Category5']
- data = [20, 35, 15, 27, 45]
- x, y축 라벨 표시
- title 설정
- 그리드 표시 투명도 0.5
- x축 눈금 45도 회전 시키기
과제 (도넛 그래프 그리기)
- 다음 데이터를 가지고 결과와 같은 막대그래프를 그리시오.
- fruits = ['Apple', 'Banana', 'Melon', 'Grapes']
- data = [34, 32, 16, 18]
- 도넛 형식으로 그릴 것
- Banana 와 Grapes를 강조하십시오.
해답 예시 코드는 하루코딩에 올려 놓겠습니다 :-)
오늘도 같이 공부하시느라 수고 많으셨습니다!!!!!!

'python 시작하기' 카테고리의 다른 글
python OPEN CV를 활용하여 이미지를 저장해보자! (0) | 2025.01.08 |
---|---|
python seaborn을 이용한 데이터 시각화 (0) | 2024.12.18 |
Python 데이터 시각화 (1) | 2024.12.16 |
python Pandas (2) | 2024.12.15 |
Python Numpy (4) | 2024.12.14 |