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() 출력
위의 코드를 실행하면 다음과 같은 결과가 나타납니다.
