Python에는 matplotlib 라이브러리를 사용하여 그래프를 생성하는 기능이 있습니다. 여기에는 다양한 그래프와 플롯을 생성하는 수많은 패키지와 기능이 있습니다. 사용법도 매우 간단합니다. numpy 및 기타 파이썬 내장 함수와 함께 목표를 달성합니다. 이 기사에서는 생성할 수 있는 다양한 종류의 그래프를 살펴보겠습니다.
간단한 그래프
여기에서 그래프의 x 및 Y 좌표를 생성하는 수학 함수를 사용합니다. 그런 다음 matplotlib를 사용하여 해당 함수에 대한 그래프를 플로팅합니다. 여기에서 레이블을 적용하고 아래와 같이 그래프의 제목을 표시할 수 있습니다. 삼각 함수 tan에 대한 그래프를 플로팅하고 있습니다.
예시
from matplotlib import pyplot as plt import numpy as np import math #needed for definition of pi x = np.arange(0, math.pi*2, 0.05) y = np.tan(x) plt.plot(x,y) plt.xlabel("angle") plt.ylabel("Tan value") plt.title('Tan wave') plt.show()
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
멀티플롯
여러 축을 만들고 프로그램에서 사용하여 단일 캔버스에 두 개 이상의 플롯을 가질 수 있습니다.
예시
import matplotlib.pyplot as plt import numpy as np import math x = np.arange(0, math.pi*2, 0.05) fig=plt.figure() axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axes axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # inset axes axes3 = fig.add_axes([0.2, 0.3, 0.2, 0.3]) # inset axes axes1.plot(x, np.sin(x), 'b') axes2.plot(x,np.cos(x),'r') axes3.plot(x,np.tan(x),'g') axes1.set_title('sine') axes2.set_title("cosine") axes3.set_title("tangent") plt.show()
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
서브플롯의 그리드
각각이 서브플롯인 다른 그래프를 포함하는 그리드를 생성할 수도 있습니다. 이를 위해 우리는 함수 subplot2grid를 사용합니다. 여기에서 모든 서브플롯이 그리드에 맞도록 축을 신중하게 선택해야 합니다. 약간의 히트 dtrail이 필요할 수 있습니다.
예시
import matplotlib.pyplot as plt a1 = plt.subplot2grid((3,3),(0,0),colspan = 2) a2 = plt.subplot2grid((3,3),(0,2), rowspan = 3) a3 = plt.subplot2grid((3,3),(1,0),rowspan = 2, colspan = 2) import numpy as np x = np.arange(1,10) a2.plot(x, x*x,'r') a2.set_title('square') a1.plot(x, np.exp(x),'b') a1.set_title('exp') a3.plot(x, np.log(x),'g') a3.set_title('log') plt.tight_layout() plt.show()
출력
위의 코드를 실행하면 다음과 같은 결과가 나타납니다.
등고선 플롯
등고선 플롯(레벨 플롯이라고도 함)은 2차원 평면에 3차원 표면을 표시하는 방법입니다. y축에 두 개의 예측 변수 X Y와 등고선으로 응답 변수 Z를 그래프로 표시합니다. Matplotlib에는 각각 등고선과 채워진 등고선을 그리는 contour() 및 contourf() 함수가 포함되어 있습니다.
예시
import numpy as np import matplotlib.pyplot as plt xlist = np.linspace(-3.0, 3.0, 100) ylist = np.linspace(-3.0, 3.0, 100) X, Y = np.meshgrid(xlist, ylist) Z = np.sqrt(X**2 + Y**2) fig,ax=plt.subplots(1,1) cp = ax.contourf(X, Y, Z) fig.colorbar(cp) # Add a colorbar to a plot ax.set_title('Filled Contours Plot') #ax.set_xlabel('x (cm)') ax.set_ylabel('y (cm)') plt.show()
출력
위의 코드를 실행하면 다음과 같은 결과가 나타납니다.