파이썬 데이터 분석 쌩 기본기 : matplotlib 시각화 기초 (1)

2024. 12. 26. 16:13·Coding & Data Analysis/Python

데이터는 R 패키지 ggplot2 의 mpg 데이터를 사용하였습니다.
mpg.csv
0.02MB

1번 예시

val_c = df.groupby('fl')['cty'].mean()
val_h = df.groupby('fl')['hwy'].mean()

plt.figure(figsize = (10,5))

plt.plot(df['fl'].unique(), val_c, c = 'red', lw = 1, alpha = 0.5,
        marker = 'o', ms = 3, mec = 'black', mfc = 'gray', 
        ls = 'dotted', label = 'cty')
plt.plot(df['fl'].unique(), val_h, c = 'blue', lw = 1, alpha = 0.5,
        marker = 'o', ms = 3, mec = 'black', mfc = 'gray', 
        ls = 'dotted', label = 'hwy')

for idx,val in enumerate(val_c) :
    plt.text(idx, val_c.iloc[idx] + 0.3, 
             round(val,3), ha = 'center')
for idx,val in enumerate(val_h) :
    plt.text(idx, val_h.iloc[idx] + 0.3, 
             round(val,2), ha = 'center')

plt.legend()
plt.grid(axis = 'y', ls = ':')
plt.show()

👉 fl( fuel : 연료 타입 ) 으로 그룹화 후 각 그룹별 평균 도출

👉 plt.plot ( x축, y축, ... )

👉 c( color ), mec( markeredgecolor ) 등 축약어 사용 가능

👉 plt.grid : 그래프에 가이드 선 추가

for idx,val in enumerate(val_c) :
    plt.text(idx, val_c.iloc[idx] + 0.3, 
             round(val,3), ha = 'center')

👉 enumerate : 값을 집어넣으면, 인덱스와 해당 값으로 나눠서 리턴.

    ❗plt.text 함수에 x/y축 좌표 넣어서 평균 표시 ( y 그대로 표시하면 마커와 동일한 위치 : 작은 값 더하기)

    ❗3번째 변수는 표시할 값. round 함수로 깔끔하게 표시

 

 

 

2번 예시

plt.figure(figsize = (10,5))

val2 = df.groupby('class')['hwy'].mean()
bar1 = plt.bar(df['class'].unique(), val2, color = 'blue')

for idx,rect in enumerate(bar1) :
    plt.text(idx, rect.get_height() + 0.3, round(val2.iloc[idx],2), ha = 'center')

plt.title('average highway efficiency per class')
plt.xlabel('class', loc = 'center')
plt.ylabel('average hwy efficiency', loc = 'center')

plt.grid(axis = 'y', ls = ':')
plt.ylim(0,35)
plt.xticks(rotation = 45)

plt.show()

👉 plt.bar 를 따로 받아서 enumerate에 넣으면, 인덱스와 rect 객체 도출. get_height 등 메서드 활용

    ❗plt.text 의 y좌표 높이에 쓰기

👉 plt.barh : horizontal ( 수평 ) 막대그래프 사용가능

 

 

 

3번 예시

val_c = df.groupby('fl')['cty'].mean()
val_h = df.groupby('fl')['hwy'].mean()
idx = np.arange(5)

plt.figure(figsize = (10,5))
plt.bar(idx - 0.15, val_c, width = 0.25, label = 'mean_cty')
plt.bar(idx + 0.15, val_h, width = 0.25, label = 'mean_hwy') #bottom = val_c
plt.xticks(idx, df['fl'].unique())
plt.grid(axis = 'y', ls = ':')
plt.legend()
plt.show()

👉 누적막대그래프 : 그래프 겹쳐서 코드 작성하되, bottom = [아래에 둘 값] 옵션 추가

👉 다중막대그래프 : 그래프 겹쳐서 코드 작성하되, x축에 array 사용

    ❗np.arange : 리스트와 비슷한 이터레이터지만, 한번에 계산 가능함.

    ❗idx - 0.25 : array 에 한번에 0.25를 빼서 막대그래프 두 개의 위치가 겹치지 않음.

    ❗그래프의 x축에 array 를 사용했기에, xticks를 써서 별개로 x축 설정

 

'Coding & Data Analysis > Python' 카테고리의 다른 글

[파이썬] 미국 경제 데이터셋으로 머신러닝 배우기 <선형회귀>  (1) 2024.12.27
파이썬 데이터 분석 쌩 기본기 : matplotlib 시각화 기초 (2)  (1) 2024.12.26
[Python] 파이썬 데이터 분석 쌩 기본기 : 데이터 다루기  (0) 2024.12.24
[Python] 다중 막대 그래프와 array 오류 해결하기  (5) 2024.09.21
[Python] Apply 함수 : 복수 인자 사용하는 방법  (1) 2024.09.15
'Coding & Data Analysis/Python' 카테고리의 다른 글
  • [파이썬] 미국 경제 데이터셋으로 머신러닝 배우기 <선형회귀>
  • 파이썬 데이터 분석 쌩 기본기 : matplotlib 시각화 기초 (2)
  • [Python] 파이썬 데이터 분석 쌩 기본기 : 데이터 다루기
  • [Python] 다중 막대 그래프와 array 오류 해결하기
흑석동사는시골쥐
흑석동사는시골쥐
문과 경영학도 숫자 배우기 프로젝트
  • 흑석동사는시골쥐
    NaN
    흑석동사는시골쥐
  • 전체
    오늘
    어제
  • 링크

    • 독서 일지
    • 올리고 싶은 거 올려요
    • 분류 전체보기 (75)
      • Coding & Data Analysis (52)
        • Python (23)
        • R (21)
        • Excel & Data (2)
        • Git & Github (4)
        • Certificate (2)
      • Project (15)
        • 일자리 스크래핑 서비스 (8)
        • 최적의 인스타 피드 (2)
        • 주식 & 비트코인 분석 (5)
      • Economics (1)
        • 경제기사 스크랩 (1)
      • Records & Thoughts (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 공지사항

  • 인기 글

  • 태그

    엔비디아
    matplotlib
    비전공자
    다항회귀
    기초
    AI반도체
    데이터분석
    Colab
    주가분석
    심장병 데이터
    코랩
    데이터
    r
    개발
    프로그래밍
    데이터수집
    머신러닝
    git
    웹스크래퍼
    시각화
    Python
    파이썬
    자격증
    adsp공부법
    지도
    ADSP
    FLASK
    동아리
    전처리
    주식
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
흑석동사는시골쥐
파이썬 데이터 분석 쌩 기본기 : matplotlib 시각화 기초 (1)
상단으로

티스토리툴바