웹사이트 검색

matplotlib를 사용하여 Python 3에서 데이터를 플로팅하는 방법


소개

Python은 데이터 처리에 적합합니다. 종종 데이터 세트에는 여러 변수와 많은 인스턴스가 포함되어 진행 상황을 파악하기 어렵습니다. 데이터 시각화는 데이터의 패턴을 식별하는 데 도움이 되는 유용한 방법입니다.

예를 들어, 당신이 부동산 중개인이고 집의 나이와 판매 가격 사이의 관계를 이해하려고 한다고 가정해 보겠습니다. 데이터에 5채의 주택 1블록이 포함되어 있다면 무슨 일이 일어나고 있는지 파악하는 것이 그리 어렵지 않을 것입니다. 그러나 500채의 집이 있는 마을 전체의 데이터를 사용하고 싶다고 가정해 보겠습니다. 그러면 나이가 가격에 어떤 영향을 미치는지 이해하기가 매우 어려워질 것입니다. 판매 가격과 연령을 도표화하여 데이터를 시각화하면 둘 사이에 존재하는 관계를 분명히 밝힐 수 있습니다.

시각화는 특히 데이터에 익숙하지 않은 사람들에게 보편적인 방식으로 개념을 전달하는 빠르고 쉬운 방법입니다. 데이터로 작업할 때마다 시각화는 종종 분석의 필수 부분입니다.

우리는 원래 John D. Hunter가 작성한 이후 매우 활발한 오픈 소스 개발 커뮤니티 프로젝트가 된 2D 플로팅 라이브러리인 matplotlib를 사용할 것입니다. 고품질 라인 플롯, 산점도, 히스토그램, 막대 차트 등을 생성할 수 있습니다. 각 플롯은 데이터를 다른 방식으로 표시하며 데이터에 가장 유익한 플롯을 결정하기 전에 다양한 유형의 플롯을 시도하는 것이 종종 유용합니다. 시각화는 예술과 과학의 혼합이라는 점을 명심하는 것이 좋습니다.

시각화의 중요성을 감안하여 이 튜토리얼에서는 matplotlib를 사용하여 Python에서 데이터를 플롯하는 방법을 설명합니다. 작은 데이터 집합을 사용하여 산점도를 생성하고, 플롯에 제목 및 범례와 같은 정보를 추가하고, 플롯 포인트의 모양을 변경하여 플롯을 사용자 정의하는 방법을 살펴보겠습니다.

이 튜토리얼을 마치면 Python에서 데이터를 플롯할 수 있습니다!

전제 조건

이 자습서에서는 Python 3이 설치되어 있어야 하며 컴퓨터에 로컬 프로그래밍 환경이 설정되어 있어야 합니다. 그렇지 않은 경우 운영 체제에 대한 적절한 설치 및 설정 가이드에 따라 설정할 수 있습니다.

1단계 — matplotlib 가져오기

Python에서 작업을 시작하기 전에 matplotlib 모듈이 설치되어 있는지 다시 확인하겠습니다. 명령줄에서 다음 명령을 실행하여 matplotlib를 확인합니다.

  1. python -c "import matplotlib"

matplotlib가 설치되어 있으면 이 명령은 오류 없이 완료되며 사용할 준비가 된 것입니다. 그렇지 않은 경우 오류 메시지가 표시됩니다.

  1. Output
    Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named 'matplolib'

오류 메시지가 표시되면 pip를 사용하여 라이브러리를 다운로드합니다.

  1. pip install matplotlib

이제 matplotlib가 설치되었으므로 Python에서 가져올 수 있습니다. 먼저 이 튜토리얼에서 작업할 스크립트 scatter.py를 생성해 보겠습니다. 그런 다음 스크립트에서 matplotlib를 가져오겠습니다. 플로팅 모듈(pyplot)로만 작업할 것이므로 가져올 때 지정해 봅시다.

import matplotlib.pyplot as plt

matplotlib 끝에 .pyplot을 추가하여 가져오려는 모듈을 지정합니다. 스크립트에서 모듈을 더 쉽게 참조할 수 있도록 plt로 축약합니다. 이제 데이터 생성 및 플로팅으로 넘어갈 수 있습니다.

2단계 - 플로팅할 데이터 포인트 생성

Python 스크립트에서 작업할 데이터를 만들어 보겠습니다. 우리는 2D에서 작업하고 있으므로 각 데이터 포인트에 대해 X 및 Y 좌표가 필요합니다.

matplotlib의 작동 방식을 가장 잘 이해하기 위해 데이터를 가능한 실제 시나리오와 연결합니다. 우리가 커피숍의 주인이고 연중 평균 날씨와 총 아이스 커피 구매 수 사이의 관계에 관심이 있다고 가정해 보겠습니다. X 변수는 한 달에 판매된 아이스 커피의 총 수이고 Y 변수는 매월 평균 화씨 온도입니다.

Python 스크립트에서 X(판매된 총 아이스 커피) 및 Y(평균 온도)라는 두 개의 목록 변수를 만듭니다. 각 목록의 각 항목은 매월(1월~12월) 데이터를 나타냅니다. 예를 들어, 1월 평균 기온은 화씨 32도였고 커피숍은 590개의 아이스 커피를 판매했습니다.

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

이제 데이터가 있으므로 플로팅을 시작할 수 있습니다.

3단계 - 데이터 플로팅

산점도는 두 변수 사이의 관계를 결정하는 데 유용하므로 예제에서는 이 그래프 유형을 사용합니다. matplotlib를 사용하여 산점도를 만들려면 scatter() 함수를 사용합니다. 이 함수에는 X 및 Y 좌표 값을 나타내는 두 개의 인수가 필요합니다.

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)
plt.show()

플롯을 생성할 때마다 plt.show()를 사용하여 플롯을 표시하도록 지정해야 합니다.

계속 진행하기 전에 스크립트가 작동하는지 확인하겠습니다. 스크립트를 저장하고 명령줄을 통해 실행합니다.

  1. python scatter.py

모든 것이 잘 되었다면 다음과 같이 플롯을 표시하는 창이 시작되었을 것입니다.

이 창은 데이터를 보는 데 적합합니다. 대화식이며 레이블 및 좌표를 표시하기 위한 호버링, 확대 또는 축소, 저장과 같은 여러 기능이 포함되어 있습니다.

4단계 - 제목 및 레이블 추가

이제 스크립트가 제대로 작동하는지 확인했으므로 플롯에 정보를 추가할 수 있습니다. 데이터가 무엇을 나타내는지 명확하게 하기 위해 각 축의 제목과 레이블을 포함해 보겠습니다.

제목을 추가하는 것으로 시작하겠습니다. 스크립트에서 plt.show() 줄 앞에 제목을 추가합니다.

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)

plt.title('Relationship Between Temperature and Iced Coffee Sales')

plt.show()

다음으로 plt.title 줄 바로 아래에 축에 대한 레이블을 추가합니다.

...
plt.xlabel('Cups of Iced Coffee Sold')
plt.ylabel('Temperature in Fahrenheit')
...

스크립트를 저장하고 다시 실행하면 이제 더 많은 정보를 제공하는 업데이트된 플롯이 있어야 합니다. 업데이트된 플롯은 다음과 같아야 합니다.

5단계 - 플롯 사용자 지정

우리가 작업하는 모든 데이터 세트는 고유하며 정보를 표시하는 방법을 사용자 정의할 수 있는 것이 중요합니다. 시각화도 예술이므로 창의력을 발휘하십시오! matplotlib에는 다양한 색상, 점 기호 및 크기 조정과 같은 많은 사용자 지정 기능이 포함되어 있습니다. 필요에 따라 축에 대해 다른 범위를 사용하여 다른 스케일을 가지고 놀 수 있습니다. 다음과 같이 축에 대한 새 범위를 지정하여 기본 매개변수를 변경할 수 있습니다.

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)

plt.xlim(0,1000)
plt.ylim(0,100)

plt.title('Relationship Between Temperature and Iced Coffee Sales')

plt.show()
...

원래 플롯의 점은 약간 작게 보였고 파란색은 우리가 원하는 색상이 아닐 수 있습니다. 아마도 우리는 점에 대해 원 대신 삼각형을 원할 것입니다. 점의 실제 색상/크기/모양을 변경하려면 초기 plt.scatter() 호출에서 이러한 변경을 수행해야 합니다. 다음 매개변수를 변경합니다.

  • s: 포인트 크기, 기본값=20
  • c: 색상, 순서 또는 색상 순서, 기본값='b'
  • marker: 점 기호, 기본값 = 'o'

가능한 마커에는 다이아몬드, 육각형, 별 등과 같은 다양한 모양이 포함됩니다. 색상 선택에는 파란색, 녹색, 빨간색 및 자홍색이 포함되지만 이에 국한되지는 않습니다. 색상에 대한 HTML 16진수 문자열을 제공하는 것도 가능합니다. 가능한 색상의 전체 목록은 matplotlib의 설명서를 참조하십시오.

플롯을 더 쉽게 읽을 수 있도록 포인트 크기를 세 배로 늘리고(s=60) 색상을 빨간색으로 변경하고(c=r) 기호를 변경합니다. 삼각형으로 변경합니다(marker=^). plt.scatter() 함수를 수정합니다.

plt.scatter(X, Y, s=60, c='red', marker='^')

업데이트된 스크립트를 실행하기 전에 코드가 올바른지 다시 한 번 확인할 수 있습니다. 사용자 정의 플롯에 대한 업데이트된 스크립트는 다음과 같아야 합니다.

import matplotlib.pyplot as plt


X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

#scatter plot
plt.scatter(X, Y, s=60, c='red', marker='^')

#change axes ranges
plt.xlim(0,1000)
plt.ylim(0,100)

#add title
plt.title('Relationship Between Temperature and Iced Coffee Sales')

#add x and y labels
plt.xlabel('Cups of Iced Coffee Sold')
plt.ylabel('Temperature in Fahrenheit')

#show plot
plt.show()

6단계로 이동하기 전에 스크립트를 저장하는 것을 잊지 마십시오.

6단계 - 플롯 저장

이제 코드를 완성했으므로 실행하여 새로운 사용자 지정 플롯을 살펴보겠습니다.

  1. python scatter.py

이제 플롯을 표시하는 창이 열립니다.

다음으로 하단 도구 모음에 있는 디스크 아이콘인 저장 버튼을 클릭하여 플롯을 저장합니다. 이미지는 대화형 그래프 대신 PNG로 저장됩니다. 이제 나만의 맞춤 산점도가 생겼습니다. 축하합니다!

결론

이 자습서에서는 Python에서 matplotlib를 사용하여 데이터를 플로팅하는 방법을 배웠습니다. 이제 데이터를 시각화하고 플롯을 사용자 정의할 수 있습니다.

matplotlib로 계속 연습하려면 "Python 3에서 matplotlib를 사용하여 단어 빈도를 그래프로 작성하는 방법\ 가이드를 따르세요.