파이썬의 matplotlib는 수치 데이터를 그래프로 효과적으로 표시해주는 API입니다. 이에 대해 간단한 활용 예시에 대한 코드를 기록해 둡니다.
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 2, 3, 4, 5] plt.scatter(x, y) plt.show()
X축과 Y축에 대한 포인트 데이터를 표시하는 코드입니다. 결과는 다음과 같습니다.
그래프에서 포인트의 크기와 색상, 투명도를 지정하는 예제는 다음과 같습니다.
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 2, 3, 4, 5] s = [10, 20, 30, 40, 50] plt.scatter(x = x, y = y, s = s, c = 'red', alpha=0.5) plt.show()
결과는 다음과 같습니다.
다음은 꺽은선 그래프입니다.
import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 10, 0.5) y = np.sin(x) plt.plot(x, y) plt.show()
x축과 y축의 데이터는 4번과 5번 코드에서 정의합니다. 결과는 다음과 같습니다.
하나의 차트에 여러개의 그래프를 동시에 표시하고, 추가적으로 제목, 축이름 등을 표시하는 코드입니다.
import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 10, 0.5) y1 = np.sin(x) y2 = np.cos(x) plt.plot(x, y1, label="sin(x)") plt.plot(x, y2, label="cos(x)", linestyle="--") plt.xlabel("x") plt.xlabel("y") plt.title("sin & cos") plt.legend() plt.show()
3차원 차트의 경우 먼저 X, Y축에 대한 데이터와 이 X, Y를 변수로 하여 계산된 Z 값의 함수가 정의해야 합니다. 이렇게 정의된 X, Y, Z에 대한 3차원 그래프는 아래의 예제 코드를 통해 3차원 차트로 시각화할 수 있습니다.
import numpy as np from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt X = np.arange(-5, 5, 0.25) Y = np.arange(-5, 5, 0.25) X, Y = np.meshgrid(X, Y) Z = X**2 + Y**2 fig = plt.figure() ax = fig.gca(projection='3d') surf = ax.plot_wireframe(X, Y, Z, color='black') plt.show()
여러개의 차트를 동시에 표시하는 경우입니다.
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, np.pi * 3, 100) fig, axes = plt.subplots(2,2) axes[0][0].plot(x, np.sin(x)) axes[0][1].plot(x, np.arccos(x)) axes[1][0].plot(x, np.cos(x)) axes[1][1].plot(x, np.arcsin(x)) plt.show()
아래는 차트를 그리는 스타일을 지정하고 범례를 표현하는 코드입니다.
import matplotlib.pyplot as plt import numpy as np x = np.arange(-10,10) y = x**2 plt.plot(x, y, linewidth=2, color='green', linestyle=':', marker='*', markersize=10, markerfacecolor='yellow', markeredgecolor='red', label='y=x^2') plt.legend() plt.show()
결과는 다음과 같습니다.