자신에게 친절할 것 :)

Data Science/Visualization

[matplotlib] linear graph, bar graph, scatter plot

Tashapark 2024. 5. 30. 19:17
728x90

#코드잇 데이터 사이언스 강의 듣는 중

#데이터 사이언스 Toolkit  renewal 버전 다시 듣는 중

 

어제부턴가 리뉴얼 알림이 계속해서 떴던 것 같은 데 dataframe 리뉴얼 버전 들으려고 하니깐, 

선수 학습 강의 중 하나라서 다시 듣고 있다. 

이전에는 없었던 matplotlib도 생겨서 매우 좋달까.ㅎ

오랜만에 통계하는 느낌도 들고 ㅎ 

통계 강의도 생겼던데 빨리 듣고 싶기도 하고.. 

 

어쩌면 어제 다음달... 코드잇 요금이 결제되어서 오늘 더 불타오르는 것일지도 ㅎ

하여튼 운이 좋은 듯 하다. 

마침 리뉴얼이 된 시점에 비슷한 진도여서 좋다. 

 

matplotlib.pyplot이게.. r에도 있던 것 같기도 하고 정확하진 않지만..? 

근데 결국 논문에는 excell로 표 그렸었다. 마감이라고 해야하나.. 하여간 그런 게 엑셀이 더 깔끔했었다. 

 


matplotlib.pyplot은 시각화를 도와주는 도구로 주피터 노트북에서 넘파이와 함께 바로 사용가능하다. 

import numpy as np
import matplotlib.pyplot as plt

 

.....리뉴얼 버전의 특징이 강의에서 배열의 값이 다양한 것인데.. 문제는 소스코드를 따로 제공하지 않기 때문에

일일히 쳐야 한다.. 

그래서..........치다가 열받아서 이젠 배열 값 코드로 만들고 나서 강의를 듣는다.. 똑같진 않더라도 유사한 수준으로 만든다. 

- stock은 어쩔 수 없이 값을 입력했다. 

 

- linear graph 선형 그래프 plt.plot(x, y)

year_array_ar = np.arange(2011, 2021)

year_array = np.array([2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020])

stock_array = np.array([
    14.46, 19.01, 20.04, 27.59, 26.32,
    28.96, 42.31, 39.44, 73.41, 132.69
])

plt.plot(year_array, stock_array)
plt.show() #주피터에서는 입력하지 않아도 출력되지만 그래도 습관들일 겸사겸사

 

- bar graph 막대 그래프 plt.bar(x, y)

name_array = np.array(['mark', 'jane', 'tasha', 'shown', 'nico'])
votes_array = np.array([5, 10, 6, 8, 3])

plt.bar(name_array, votes_array)
plt.show()

 

- scatter plot 산포도 plt.scatter(x, y)

- ... 산포도는 진짜..30개 랜덤이라서.. 걍 만들었는데, 그대로 하니깐 너무 상관이 안 뜨게 나타나서, 사실 몸무게와 키는 다소 비례하기 때문에 sorted를 해줬음. 

- 문제는 그래서 사실상의 linear가 나와버렸지만.. 실제로는 아님. 

import random
height_array = []
for i in range(30):
    height_array.append(random.randint(157, 190))
    print(height_array)

import random
weight_array = []
for i in range(30):
    weight_array.append(random.randint(51, 88))
    print(weight_array)
    
 
height_array = np.array([157, 175, 190, 162, 150, 164, 178, 188, 189, 161, 159, 186, 175, 163, 158, 165, 164, 176, 173, 160, 174, 184, 186, 152, 176, 158, 179, 160, 167, 186])
sorted_height_array = sorted(height_array)

weight_array = np.array([74, 54, 86, 79, 58, 81, 70, 51, 65, 69, 64, 85, 70, 56, 56, 55, 56, 53, 77, 81, 52, 53, 58, 85, 61, 83, 73, 61, 65, 85])
sorted_weight_array = sorted(weight_array)

plt.scatter(sorted_height_array, sorted_weight_array)
plt.show()

 

 

 

728x90
반응형