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

Pandas 데이터프레임과 Matplotlib으로 산점도(Scatter Plot) 그리는 방법

Pandas를 활용하면 데이터프레임을 손쉽게 생성할 수 있으며, subplot() 메서드를 통해 figure(그림)와 axes(축) 객체를 만들 수 있습니다. 이어서 ax.scatter() 메서드를 사용하면 원하는 산점도를 간단하게 완성할 수 있습니다.

구현 단계

  • 학생 수를 담은 리스트를 준비합니다.

  • 학생들이 취득한 점수 목록을 리스트로 만듭니다.

  • 각 산점도 점의 색상을 표현하기 위해 색상 정보가 담긴 리스트를 준비합니다.

  • Pandas를 이용해 데이터프레임의 축에 해당하는 데이터를 구성합니다.

  • subplots() 메서드로 figax 변수를 생성합니다. 기본값인 nrows와 ncols는 각각 1입니다.

  • plt.xlabel() 메서드로 X축 레이블 'Students count'(학생 수)를 설정합니다.

  • plt.ylabel() 메서드로 Y축 레이블 'Obtained marks'(취득 점수)를 설정합니다.

  • 앞서 만든 데이터프레임을 활용해 산점도를 그립니다. 이때 x축에는 students_count, y축에는 marks, 색상에는 color 값을 지정합니다.

  • plt.show() 메서드를 호출하여 그래프를 화면에 출력합니다.

예제 코드

from matplotlib import pyplot as plt
import pandas as pd

no_of_students = [1, 2, 3, 5, 7, 8, 9, 10, 30, 50]
marks_obtained_by_student = [100, 95, 91, 90, 89, 76, 55, 10, 3, 19]
color_coding = ['red', 'blue', 'yellow', 'green', 'red', 'blue', 'yellow', 'green', 'yellow', 'green']

df = pd.DataFrame(dict(students_count=no_of_students,
marks=marks_obtained_by_student, color=color_coding))

fig, ax = plt.subplots()

plt.xlabel('Students count')
plt.ylabel('Obtained marks')

ax.scatter(df['students_count'], df['marks'], c=df['color'])

plt.show()

실행 결과

Pandas 데이터프레임과 Matplotlib으로 산점도(Scatter Plot) 그리는 방법

위 예제에서는 학생 수와 취득 점수 데이터를 딕셔너리 형태로 Pandas 데이터프레임에 담고, 각 데이터 포인트마다 서로 다른 색상을 지정했습니다. 이처럼 c 매개변수에 색상 리스트를 전달하면 데이터의 특성에 따라 점의 색을 다르게 표현할 수 있어, 시각적으로 더 풍부한 분석이 가능합니다.