ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 혼자 공부하는 데이터분석 with 파이썬 06-1 복잡한 데이터 표현하기
    카테고리 없음 2023. 10. 7. 23:09

    pyplot 방식으로 그래프 그리기

    plt.plot([1, 4, 9, 16])
    plt.title('simple line graph')
    plt.show()

    객체지향 API 방식으로 그래프 그리기

    피겨 객체와 Axes 객체를 사용하는 객체지향 API 방식으로 그림

    fig, ax = plt.subplots()
    ax.plot([1, 4, 9, 16])
    ax.set_title('simple line graph')
    fig.show()

    폰트 지정하기1:font.family속성

    기본 폰트 : 영문 sans-serif

    plt.rcParams['font.family']

    나눔고딕으로 변경

    plt.rcParams['font.family'] = 'NanumGothic'

    폰트 지정하기2: rc()함수

    plt.rc('font', family='NanumBarunGothic')

    여러 설정을 동시에 지정

    예) 폰트 패밀리와 폰트 크기를 동시에 설정

    plt.rc('font', family='NanumBarunGothic', size=11)

     

    출판사별 발행 도서 개수 산점도 그리기

    고유한 출판사 목록 만들기

    value_counts()메서드를 사용하여 목록 만들기

    카운트가 높은 순으로 결과를 내림차순으로 정렬

    상위 30개 출판사를 선택하기 위해 슬라이스 연산자 사용

    top30_pubs = ns_book7['출판사'].value_counts()[:30]
    top30_pubs

    상위 30개 출판사에 해당하는 불리언 인덱스 만들기

    isin() 메서드사용

    top30_pubs_idx = ns_book7['출판사'].isin(top30_pubs.index)
    top30_pubs_idx

    산점도를 그리기에는 데이터가 많아서 무작위로 1000개만 선택

    1000개 선택: sample()메서드 사용

    무작위성: random_state() 매개변수에 임의의 숫자 입력

    ns_book8 = ns_book7[top30_pubs_idx].sample(1000, random_state=42)
    ns_book8.head()

    산점도 그리기

    x축: 발행년도 y축: 출판사

    subplots() 함수로 피겨의 크기 설정 (10,8)

    fig, ax = plt.subplots(figsize=(10, 8))
    ax.scatter(ns_book8['발행년도'], ns_book8['출판사'])
    ax.set_title('출판사별 발행도서')
    fig.show()

    값에 따라 마커 크기를 다르게 나타내기

    scatter()함수에 s 매개변수로 마커 크기 지정 

    기본값 : 6

    다음처럼 대출건수 열을 마커크기로 전달하면 상대적으로 많은도서를 크게 그릴 수 있음

    fig, ax = plt.subplots(figsize=(10, 8))
    ax.scatter(ns_book8['발행년도'], ns_book8['출판사'], s=ns_book8['대출건수'])
    ax.set_title('출판사별 발행도서')
    fig.show()

    마커 꾸미기

    1) 투명도 조절

    alpha 매개변수 : 마커의 진하기로 도서량 확인 가능

     

    2) 마커 테두리 색 바꾸기

    edgecolor 매개변수: 기본값은 'face'  마커가 겹칠 때 경계를 구분할 수 있음 

    ex) 검은색을 의미하는 'k'로 지정

     

    3) 마커 테두리 선 두께 바꾸기

    linewidths 매개변수 : 기본값은 1.5

     

    4) 산점도 색 바꾸기

    c 매개변수 : 데이터 개수와 동일한 길이의 배열을 전달하면 각 데이터를 다른 색깔로 그릴 수 있음

    ex) c매개변수에 '대출건수'열을 전달하면 큰값: 밝은 노란색 낮은 값: 진한 녹색

     

    fig, ax = plt.subplots(figsize=(10, 8))
    ax.scatter(ns_book8['발행년도'], ns_book8['출판사'], 
               linewidths=0.5, edgecolors='k', alpha=0.3,
               s=ns_book8['대출건수']*2, c=ns_book8['대출건수'])
    ax.set_title('출판사별 발행도서')
    fig.show()

    값에 따라 색상 표현하기 : 컬러맵

    viridis 컬러맵: 앞에서 사용한 컬러맵

    jet 컬러맵: 낮은값=짙은 파란색  높은 값= 노란색-> 붉은 색

    colorbar()메서드 : 컬러막대 그리기

    fig, ax = plt.subplots(figsize=(10, 8))
    sc = ax.scatter(ns_book8['발행년도'], ns_book8['출판사'], 
                    linewidths=0.5, edgecolors='k', alpha=0.3,
                    s=ns_book8['대출건수']**1.3, c=ns_book8['대출건수'], cmap='jet')
    ax.set_title('출판사별 발행도서')
    fig.colorbar(sc)
    fig.show()

     

Designed by Tistory.