Python에서 배열 플로팅
데이터를 시각화하면 데이터에 대한 일반적인 이해가 향상되고 기억에 도움이 됩니다. 인간은 텍스트보다 시각적인 것을 더 많이 기억하는 경향이 있기 때문입니다. 데이터 시각화는 사용할 수 있는 데이터가 많고 이를 이해하기 위해 잘 구성된 형식이 필요하기 때문에 중요합니다. 이 활동은 모든 데이터 과학자와 기계 학습 애호가의 일상적인 일과의 일부입니다. 데이터를 시각화하여 더 잘 이해하고 우수하고 효율적인 기계 학습 모델을 구성해야 합니다.
종종 데이터는 배열의 형태로 표현되며 결국 플롯해야 하는 상황에 이르게 됩니다. 이 기사에서는 Python을 사용하여 이러한 데이터를 플롯하는 방법에 대해 설명합니다.
코드를 진행하기 전에 한 가지를 이해해야 합니다. 배열은 n차원
이 될 수 있습니다. 즉, 배열 내부에 배열(2차원 배열
)을 가질 수 있고, 배열 내부에 배열이 더 포함된 배열(3D 배열) 등등이 될 수 있습니다. 그리고 차원의 수가 증가함에 따라 배열을 플로팅하는 복잡성이 증가합니다. 이러한 경우 배열은 시각화를 개선하는 다른 종류의 그래프를 플로팅하거나 플로팅하는 데 적합한 다른 형식으로 변환해야 합니다. 이 기사에서는 1D 및 2D 배열을 플로팅하는 방법에 대해 설명합니다.
시각화 목적으로 포괄적인 파이썬 기반 라이브러리인 Matplotlib
를 사용하고 배열을 플롯하기 위해 NumPy
를 사용할 것입니다.
자세한 내용은 여기(Matplotlib
) 및 여기(NumPy
)에서 확인할 수 있습니다.
Python에서 1차원 배열 플로팅하기
1차원 배열을 플롯하려면 다음 코드를 참조하십시오.
import numpy as np
import matplotlib.pyplot as plt
x = np.array(range(0, 10))
y = np.array([100, 23, 44, 12, 55, 85, 69, 33, 75, 2])
plt.title("Plotting 1-D array")
plt.xlabel("X axis")
plt.ylabel("Y axis")
plt.plot(x, y, color="red", marker="o", label="Array elements")
plt.legend()
plt.show()
변수 y
는 그려야 하는 데이터를 보유하고 변수 x
는 인덱스를 보유합니다. 여기에서도 플로팅 목적으로 0 기반 인덱싱이 고려되었습니다. 이 x = np.array(range(1, 11))
를 추가하여 인덱싱을 다시 1 기반 인덱싱으로 변경할 수도 있습니다. plot
기능은 먼저 x-축
에 대한 데이터를 가져온 다음 y-축
에 대한 데이터를 가져옵니다. color
인수는 선 플롯의 색상을 설정하고 marker
인수는 선 그래프 위에 점을 표시하는 데 사용할 기호를 설정하고 label
인수는 이 특정 선에 대해 표시할 레이블을 설정합니다. plt.legend()
가 없으면 레이블에 대한 정보가 그래프 위에 표시되지 않습니다.
위 코드의 출력은 다음과 같을 것입니다.
Python에서 2차원 배열 플로팅하기
2차원 배열을 플롯하려면 다음 코드를 참조하십시오.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import figure
figure(figsize=(8, 6))
x = np.array(range(0, 10))
y = np.array(
[
[32, 69, 92, 81, 27, 97, 64, 98, 26, 22],
[85, 76, 63, 44, 94, 52, 71, 66, 2, 62],
[45, 80, 46, 24, 10, 74, 10, 33, 12, 60],
[73, 94, 21, 6, 93, 74, 36, 47, 16, 99],
[96, 84, 66, 12, 43, 58, 17, 16, 28, 6],
[83, 4, 56, 94, 97, 36, 94, 41, 74, 14],
[90, 13, 11, 71, 79, 49, 9, 69, 73, 61],
[94, 52, 28, 18, 14, 15, 91, 95, 16, 42],
[73, 35, 40, 25, 46, 25, 33, 1, 99, 30],
[61, 7, 89, 33, 94, 64, 1, 60, 41, 81],
]
)
plt.title("Plotting a2-D array")
plt.xlabel("X axis")
plt.ylabel("Y axis")
for i, array in enumerate(y):
plt.plot(
x,
array,
color=np.random.rand(
3,
),
marker="o",
label=f"Array #{i}",
)
plt.legend(loc="center left", bbox_to_anchor=(1, 0.5))
plt.show()
변수 y
는 2-D
배열을 보유합니다. 2-D
배열의 각 배열을 반복하고 임의의 색상과 고유한 레이블로 플롯합니다. 플로팅이 완료되면 범례 상자의 위치를 변경하고 플롯을 표시합니다.
위 코드의 출력은 다음과 같을 것입니다.