Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

CSV 파일의 세 번째 열 값을 기준으로 색상을 표시하는 2D 산점도 만들기

개요

CSV 파일에 저장된 세 번째 배열(열)의 값을 기준으로 2D 산점도(scatter plot)의 색상을 표시하고 싶다면, matplotlib의 scatter() 함수에서 c 파라미터를 활용하면 됩니다. 아래 단계를 순서대로 따라 해 보세요.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
  • 세 개의 헤더(컬럼)를 가진 CSV 파일을 pandas로 읽어옵니다.
  • 새로운 그림을 생성하거나 기존 그림을 활성화합니다.
  • 서브플롯 배치의 일부로 그림에 축(ax)을 추가합니다.
  • CSV 데이터로 산점도를 그리면서, 세 번째 열을 c 인자에 전달해 색상으로 표현합니다.
  • show() 메서드를 사용해 그림을 화면에 출력합니다.

예제 코드

import pandas as pd
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

columns = ["data1", "data2", "data3"]
df = pd.read_csv("input.csv", usecols=columns)

fig = plt.figure()
ax = fig.add_subplot(111)
sc = ax.scatter(df.data1, df.data2, c=df.data3, cmap="viridis", marker="*")
fig.colorbar(sc, label="data3")

plt.show()

이 코드의 핵심은 c=df.data3 부분입니다. x축에는 data1, y축에는 data2가 배치되고, 각 데이터 포인트의 색상은 data3 값에 따라 결정됩니다. cmap 옵션으로 원하는 컬러맵을 지정할 수 있으며, 컬러바(colorbar)를 함께 추가하면 색상과 수치의 대응 관계를 한눈에 파악할 수 있습니다.

입력 파일(input.csv)

"input.csv" 파일에는 다음과 같은 데이터가 들어 있습니다.

data1data2data3
14571
29865
37529
45463
52312
63527
74639
85744
96851

출력 결과

코드를 실행하면 data3 값에 따라 색상이 다르게 표시되는 별 모양(*) 산점도가 생성됩니다. 값이 클수록 컬러맵에서 밝은 계열의 색으로, 작을수록 어두운 계열의 색으로 표현되므로, 세 변수 간의 관계를 하나의 그래프에서 직관적으로 확인할 수 있습니다.