1. Matplot의 기능들
1. Matplot이란
데이터의 시각화를 위해 그래프나 이미지를 출력하기 위한 라이브러리이다.
import matplotlib.pyplot as plt
y = [1,5,43,7,2,1]
plt.plot(y)
plt.show()
을 실행하면 다음과 같은 그래프가 나타난다.
각각의 인덱스는 x축, 값은 y축으로 설정해서 그래프로 표현한다.
2. plot()
메소드의 입력 파라미터의 개수가 2개인 경우 첫번째 항목은 x축, 두번째항목은 y 축의 좌표값으로 나타낸다.
import matplotlib.pyplot as plt
y = [1,5,43,7,2,1]
plt.plot(range(1,len(y)+1),y)
plt.show()
를 실행해보면 아래와 같이 나온다.
import matplotlib.pyplot as plt
y = [1,5,43,7,2,1]
plt.plot(range(1,len(y)+1),y)
plt.show()
x의 원소의 갯수랑 y의 원소의 갯수가 다르면 출력이 되지 않는다.
즉 x의 갯수 = y의 갯수 이어야 그래프가 출력된다.
아래와 같이 다양하게 축을 설정할 수 있다.
리스트 형태로 x 축 설정
import matplotlib.pyplot as plt
y = [1,5,43,7,2,1]
plt.plot(["data1","data2","data3","data4","data5","data6"], y)
plt.show()
plt.plot("1,2,3,4,5,6", y)
3. label()
여러 그래프를 한 좌표에 나타내보자.
show()는 반드시 마지막 출력할 때 한번만 써야 하나로 묶어서 나온다.
아래와 같이 제목과 라벨링과 위치를 조정해서 적을 수도 있다.
import matplotlib.pyplot as plt
x = [1,2,3,4,5,6,7,8,9,10,11,12]
y1 = [10,20,25,40,80,120,135,120,80,30,10,5]
plt.plot(x,y1, label = "Electric bill")
plt.xlabel("2021year(month)")
plt.ylabel("price(million dollars)")
#plt.show()
y2 = [130,100,60,20,50,10,40,20,40,90,120,160]
plt.plot(x,y2, label = "Gas bill")
plt.legend(loc = "upper left")
plt.title("2021year bill")
plt.show()
4. 점(o) 그래프
b(blue) + o (점모양)
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [10,20,25,40,80]
plt.plot(x,y,"bo")
plt.show()
5. axis(x최소, x최대, y최소, y최대)
import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [10,20,25,40,80]
plt.plot(x,y,"bo")
plt.axis([2,4.8,20,80])
plt.show()
2. Numpy Matplot
1. 넘파이 배열을 나타내보기
넘파이 배열들을 그래프로 나타내보자.
이차원 변수 또한 각각 넘파이 슬라이싱을 통해 뽑아오게 된다.
import numpy as np
points = np.array([[1,1],[1,2],[1,3],[2,1],[2,2],[2,3],[3,1],[3,2],[3,3]])
p = np.array([2.5, 2])
import matplotlib.pyplot as plt
plt.plot(points[:,0], points[:,1],"ro")
plt.plot(p[0], p[1], "bo")
plt.show()
을 실행하면 아래와 같은 그래프처럼 각 데이터가 점으로 표현된다.
2. 점이 아닌 그래프로 표현해보자
1) np.linspace( 시작포함, 끝포함, 데이터갯수 )
은 같은 간격으로 데이터 갯수만큼 주어진 범위내에서 데이터를 만드는 기능을 한다.
import numpy as np
import matplotlib.pyplot as plt
x = np.array([100,200,300,400])
y = x ** 3
print(y)
plt.plot(x,y)
plt.show()
은 단지 확인용으로 해본 코드이고
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,5,10)
y = x ** 2
print(x)
print(y)
plt.plot(x,y,"o-")
plt.show()
을 구현해보면 아래와 같이 그래프에 점과 선이 동시에 표현된다.
plt.plot(x,y,"gs-", linewidth = 3, markersize = 20)
에서 g는 green(초록색)을 의미하고 s는 square(네모) 모양을 의미한다.
plt.savefig("mplot.pdf")
를 이용하여 파일명을 mplot.pdf로 저장할 수 있다.
2) np.logspace( 시작포함, 끝포함, 데이터갯수 )
import numpy as np
import matplotlib.pyplot as plt
x = np.logspace(-1,1,10)
y = x ** 2
print(x)
print(y)
#plt.plot(x,y,"o-")
plt.plot(x,y,"gs-", linewidth = 3, markersize = 5)
plt.show()
plt.savefig("mplot.pdf")
사실 logspace() 는 잘 안쓴다.
3) standard_normal()
import numpy as np
import matplotlib.pyplot as plt
x = np.random.standard_normal(size = 10)
print(x)
print(x.shape)
plt.hist(x)
plt.show()
hist() 메소드 인자로 각 구간에 몇 개의 요소가 있는지 보여준다.
4) 별 모양의 그래프
각 공간의 영향력을 뿌리는 형태로 데이터의 산포도를 표현할 수 있다.
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(30)
y = np.random.rand(30)
colors = np.random.rand(30)
shape = np.pi * (np.random.rand(30) * 20) ** 2
plt.scatter(x,y, s=shape, c = colors, marker = '*', alpha=0.7)
plt.show()
'Robot > 22년도 자율주행 테크니션 양성과정 일지록' 카테고리의 다른 글
[파이썬] DAY16 네트워크 계층 & 스레드 동작 제어 (0) | 2022.02.09 |
---|---|
[파이썬] DAY14 Numpy + Matplotlib 코드 분석 (0) | 2022.02.07 |
[파이썬] DAY14 Numpy 전치 행렬 (0) | 2022.02.07 |
[파이썬] DAY14 파이참: open CV 환경 구축&새 프로젝트 생성 (0) | 2022.02.07 |
[파이썬] DAY13 Numpy(복습완료) (0) | 2022.02.04 |