본문 바로가기

카테고리 없음

[파이썬] 혼자 공부하는 데이터 분석(05 맷플롯립, 선/막대그래프 그리기)

반응형

#1. 900*600픽셀에 DPI를 고려하여 ns_books의 '도서권수', '대출건수' 그래프 그리기

#2. 2개의 열을 가진 슬롯을 그리는데 사이즈는 6,8
첫번째 슬롯은 '도서권수, '대출건수'의 산포도, 제목은 '1번슬롯'
두번째 슬롯은 '대출건수'의 막대그래프, bins20, y축제목은 '2번 히스토그램', y로그스케일

#3. 그래프 해상도 100으로 높이기

#4. name_col 데이터의 선그래프 그리는데 점으로 된 점섬그래프, 빨간색, x축 이름은 'x제목'

#5. x보조축을 1947부터 2030까지 10년마다 설정

#6. count_year에서 데이터 레이블을 작성하는데 5개 값마다, 위치는 마커에서 각각 +2 떨어져서, 상대좌표, 가운데 정렬

#7. count_year 가로막대그래프 작성, 데이터 레이블(for문) 작성, 레이블 위치 이동 및 가운데, 사진으로 저장

#8. jupyter.png파일을 읽고, 화면에 표시, 사이즈를 6,8로, 축을 나타내지 않게 보여주기


#1 900*600픽셀에 DPI를 고려하여 ns_books의 '도서권수', '대출건수' 그래프 그리기
plt.figure(figsize = (900/72, 600/72)) #맷플롯립의 기본 DPI는 72
plt.scatter(ns_book['도서권수'], ns_book['대출건수'], alpha = 0.1)
plt.show()

#2 2개의 열을 가진 슬롯을 그리는데 '도서권수', '대출건수' 사이즈는 6,8
#첫번째 슬롯은 '도서권수, '대출건수'의 산포도, 제목은 '1번슬롯'
#두번째 슬롯은 '대출건수'의 막대그래프, bins20, y축제목은 '2번 히스토그램', y로그스케일
fig, axs = plt.subslot(1, 2, figsize = (6,8))
axs[0].scatter(ns_book['도서권수']., ns_book['대출건수'], alpha = 0.1)
axs[0].set_title('1번슬롯') #슬롯 제목
axs[1].hist(ns_book['대출건수'], bins = 20)
axs[1].set_ylabel('2번 히스토그램') #y축 제목
axs[1].set_yscale(log)
fig.show()

#3 그래프 해상도 100으로 높이기
plt.rcParams['figure.dip'] = 100

#4 name_col 데이터의 선그래프 그리는데 점으로 된 점섬그래프, 빨간색, x축 이름은 'x제목'
plt.plot(name_col, marker = '.', linestyle = ':', color = 'red')
#또는 plt.plot(name_col, '.:r')
plt.xlabel('x제목')
plt.show()

#5. x보조축을 1947부터 2030까지 10년마다 설정
plt.xticks(range(1947, 2030, 10))

#6. count_year에서 데이터 레이블을 작성하는데 5개 값마다, 위치는 마커에서 각각 +2 떨어져서, 상대좌표, 가운데 정렬
plt.plot(count_year)
for idx, val in count_year[::5].items():  
  plt.annotate(val, (idx, val), xytext = (idx+2, val+2), textcoords = 'offset points', ha = 'center')  
#items는 인덱스와 값을 감싼 튜플을 얻기 위해
#annotate(문자열, (x좌표, y좌표))
#ha는 horizontal alignment의 약자

#7. count_year 가로막대그래프 작성, 데이터 레이블(for문) 작성, 레이블 위치 이동 및 가운데, 사진으로 저장
plt.barh(count_year.index, count_year.values)
for idx, val in count_year.items():
  plt.annotate(val, (val, idx), xytext = (2,0), textcoords = 'offset points',
               va = 'center')
plt.savefig('제목없음.png')

#8. jupyter.png파일을 읽고, 화면에 표시, 사이즈를 6,8로, 축을 나타내지 않게 보여주기
img = plt.imread('jupyter.png')
plt.imshow(img)
plt.figure(figsize = (6,8))
plt.axis('off')
plt.show()
반응형