본문 바로가기

Dev Language/Python

[Python][Matplotlib] 선(Line) 차트 사용법

반응형

1. 소개

선 차트(Line Chart)는 데이터의 변화를 추적하거나 비교하기 위해 많이 사용되는 시각화 방법입니다. 선 차트는 시간, 연령, 온도 등 연속적인 값들의 변화를 보여줄 때 효과적으로 사용됩니다. 또한, 여러 개의 데이터 시리즈를 한 번에 비교할 수 있는 다중 라인 차트를 만들어 정보를 비교하고 해석하는 데에도 유용합니다.

선 차트의 역할과 중요성

선 차트는 데이터의 변화를 직관적으로 이해할 수 있도록 도와주며, 주요한 경향성과 패턴을 시각적으로 파악할 수 있게 해줍니다. 선 차트를 통해 일련의 데이터를 시각적으로 표현하면, 데이터의 숫자나 수치에 비해 더욱 쉽고 빠르게 추세를 파악할 수 있습니다. 또한, 다양한 변수 간의 관계를 시각적으로 확인할 수 있어 비교 분석에 효과적입니다.

선 차트의 사용 예시와 장점

선 차트는 다양한 분야에서 사용되며, 다음과 같은 예시들이 있습니다:

  • 주식 시장에서 주식 가격의 변동 추세를 분석하기 위해 사용됩니다.
  • 기후학 연구에서 온도, 강수량 등의 변화를 추적하여 기후 패턴을 분석합니다.
  • 경제학에서 기업의 매출, 이익 등 경제 데이터의 변동을 분석합니다.
  • 학생들의 시험 성적 변화를 추적하여 학업 분석에 활용합니다.

선 차트의 장점은 다음과 같습니다:

  • 데이터의 경향성과 관계를 직관적으로 이해할 수 있습니다.
  • 다양한 데이터 시리즈를 한 번에 표현하여 비교 분석이 용이합니다.
  • 데이터의 이상치나 특이값을 빠르게 식별할 수 있습니다.
  • 시계열 데이터를 시각화하는 데에 효과적입니다.

이제, 선 차트에 대한 소개는 마무리되었습니다. 다음으로는 준비하기 단계에 대해 알아보겠습니다.

2. 준비하기

선 차트를 그리기 위해 필요한 패키지와 라이브러리를 설치하고, 데이터셋을 불러와 확인해보겠습니다.

필요한 패키지와 라이브러리 설치

선 차트를 그리기 위해 다음과 같은 패키지와 라이브러리를 설치해야 합니다:

  • matplotlib: 선 차트를 그리기 위한 핵심 패키지입니다.
  • pandas: 데이터셋을 불러오고 전처리하기 위한 패키지입니다.

아래 명령어를 사용해서 필요한 패키지를 설치해줍니다.

pip install matplotlib pandas

데이터셋 불러오기 및 확인

선 차트를 그리기 위해서는 데이터셋이 필요합니다. 예제로 활용할 데이터셋을 불러와서 확인해봅시다.

일반적으로 CSV, Excel, JSON 등 다양한 포맷의 데이터셋을 사용할 수 있습니다. 이 예제에서는 CSV 파일을 사용하도록 하겠습니다.

먼저, pandas의 read_csv() 함수를 이용하여 CSV 파일을 불러옵니다. 예를 들어, 'data.csv' 파일을 불러온다면 아래와 같은 코드를 사용할 수 있습니다.

import pandas as pd

data = pd.read_csv('data.csv')

데이터를 성공적으로 불러온 후에는 데이터를 확인하는 것이 중요합니다. head() 함수를 사용하여 데이터의 첫 5개 행을 확인할 수 있습니다.

data.head()

위 코드를 실행하면, 데이터의 첫 5개 행을 확인할 수 있습니다.

이제, 패키지와 데이터셋을 준비했으니 실제로 선 차트를 그리기 위한 기본적인 단계에 대해 알아보겠습니다.

3. 기본 선 차트 그리기

이번에는 선 차트를 그리는 가장 기본적인 방법에 대해서 알아보겠습니다. 선 차트는 데이터의 변화나 추이를 시각적으로 보여주는데 유용하게 사용됩니다.

가장 간단한 선 차트 그리기

가장 간단한 형태의 선 차트는 x축과 y축으로 각각 시간 또는 순서에 따른 데이터의 변화를 보여줍니다. 예를 들어, 하루 동안의 온도 변화를 선 차트로 표현한다면 x축은 시간, y축은 온도로 설정할 수 있습니다.

먼저, matplotlib의 pyplot을 임포트합니다.

import matplotlib.pyplot as plt

다음으로, x축과 y축 데이터를 생성합니다. 아래 예제에서는 시간에 따른 온도를 나타냅니다.

x = [1, 2, 3, 4, 5]  # 시간
y = [25, 28, 26, 29, 30]  # 온도

이제, plot() 함수를 사용하여 선 차트를 그릴 수 있습니다.

plt.plot(x, y)

여기서 plot() 함수는 x, y 데이터를 인자로 받아 선 차트를 그려줍니다.

마지막으로, 그래프를 보여주는 show() 함수를 호출합니다.

plt.show()

위 과정을 모두 함께 실행하면 x축과 y축에 따른 선 차트가 나타날 것입니다. 여기서 x축과 y축은 자동으로 생성되며, 데이터의 특성에 따라 스케일이 자동 조정됩니다.

데이터 입력 방식과 그래픽 옵션 설정

plot() 함수는 x 데이터와 y 데이터를 순차적으로 입력받지만, 데이터의 인스턴스 또는 Numpy 배열로도 입력할 수 있습니다. 예를 들어, 아래와 같이 입력할 수 있습니다.

import numpy as np

x = np.array([1, 2, 3, 4, 5])
y = np.array([25, 28, 26, 29, 30])

이 외에도 plot() 함수는 다양한 그래픽 옵션을 설정할 수 있는데, 예를 들어 선의 색상, 두께, 스타일 등을 설정할 수 있습니다. 이러한 그래픽 옵션은 필요에 따라 자유롭게 설정할 수 있습니다. 자세한 설정 방법은 matplotlib 문서를 참고하시기 바랍니다.

위와 같이 기본적인 선 차트를 그리는 방법에 대해서 알아보았습니다. 이제 차례대로 다양한 선 차트 유형에 대해 알아보도록 하겠습니다.

4. 다양한 선 차트 유형

이번에는 다양한 선 차트 유형에 대해서 알아보겠습니다. 선 차트는 여러 개의 라인을 하나의 그래프에 그릴 수도 있으며, 각 라인의 색상과 스타일을 다르게 설정할 수도 있습니다. 이를 통해 데이터의 비교와 추세를 한 눈에 파악하기 쉽게 할 수 있습니다.

단일 라인 차트

가장 기본적인 형태의 선 차트는 단일 라인을 그리는 것입니다. 위에서 언급한 기본 선 차트 그리기와 동일한 방법으로 단일 라인을 그릴 수 있습니다.

먼저, x축과 y축 데이터를 생성합니다. 아래 예제에서는 시간에 따른 온도를 나타냅니다.

x = [1, 2, 3, 4, 5]  # 시간
y = [25, 28, 26, 29, 30]  # 온도

이제 plot() 함수를 사용하여 선 차트를 그립니다.

plt.plot(x, y)

이렇게 실행하면 x축과 y축에 따른 단일 라인 선 차트가 나타납니다.

다중 라인 차트

다중 라인 차트는 여러 개의 라인을 하나의 그래프에 그릴 수 있는 형태입니다. 각 라인은 서로 다른 데이터를 나타내며, 데이터의 비교와 추세를 확인하기에 유용합니다.

다중 라인 차트를 그리기 위해서는 각 라인에 대한 데이터를 별도로 생성한 뒤 plot() 함수를 여러 번 호출하여 그래프를 그립니다. 예를 들어, 아래와 같이 두 개의 라인을 그리는 방법이 있습니다.

x = [1, 2, 3, 4, 5]  # 시간
y1 = [25, 28, 26, 29, 30]  # 첫 번째 라인 데이터
y2 = [27, 30, 28, 31, 32]  # 두 번째 라인 데이터

plt.plot(x, y1)
plt.plot(x, y2)

위와 같이 실행하면 x축과 y축에 따른 두 개의 다중 라인 선 차트가 나타납니다.

차트 색상 및 스타일 설정

다중 라인 차트에서 각 라인에 대한 색상과 스타일을 다르게 설정할 수 있습니다. 이는 데이터의 구분이나 시각적 효과를 높이는 데 도움이 됩니다.

라인의 색상은 color 옵션을 사용하여 설정할 수 있습니다. 예를 들어, 아래와 같이 빨간색과 파란색으로 라인의 색상을 설정할 수 있습니다.

plt.plot(x, y1, color='red')
plt.plot(x, y2, color='blue')

라인의 스타일은 linestyle 옵션을 사용하여 설정할 수 있습니다. 예를 들어, 아래와 같이 실선과 점선으로 라인의 스타일을 설정할 수 있습니다.

plt.plot(x, y1, linestyle='solid')  # 실선
plt.plot(x, y2, linestyle='dotted')  # 점선

위와 같이 설정하여 실행하면 x축과 y축에 따른 다중 라인 선 차트가 나타납니다.

이처럼 다양한 선 차트 유형을 활용하여 데이터의 비교와 추세를 시각적으로 나타낼 수 있습니다. 선 차트의 색상과 스타일을 조절하여 그래프를 더욱 다채롭게 표현할 수도 있습니다.

5. X축과 Y축 설정

선 차트를 그릴 때 X축과 Y축에 대한 설정을 다루어보겠습니다. X축과 Y축의 범위, 라벨, 스케일 등을 설정할 수 있습니다.

X축과 Y축의 범위 설정

X축과 Y축의 범위를 설정하여 그래프의 표시 범위를 조절할 수 있습니다. 이를 통해 특정 범위 내의 데이터만 시각화할 수 있습니다.

xlim() 함수와 ylim() 함수를 사용하여 X축과 Y축의 범위를 설정할 수 있습니다. 아래 예제는 X축의 범위를 0부터 10까지, Y축의 범위를 0부터 50까지로 설정하는 방법입니다.

plt.plot(x, y)
plt.xlim(0, 10)
plt.ylim(0, 50)

위 예제에서 xlim(0, 10)은 X축의 범위를 0부터 10까지로 설정하며, ylim(0, 50)은 Y축의 범위를 0부터 50까지로 설정합니다.

X축과 Y축의 라벨 설정

X축과 Y축에 라벨을 설정하여 그래프에 해당 축의 의미를 표시할 수 있습니다. 이를 통해 그래프를 이해하기 쉽게 만들 수 있습니다.

xlabel() 함수와 ylabel() 함수를 사용하여 X축과 Y축의 라벨을 설정할 수 있습니다. 아래 예제는 X축에 "시간"이라는 라벨을, Y축에 "온도"라는 라벨을 설정하는 방법입니다.

plt.plot(x, y)
plt.xlabel("Time")
plt.ylabel("Temperature")

위 예제에서 xlabel("Time")은 X축에 "Time"이라는 라벨을 표시하며, ylabel("Temperature")는 Y축에 "Temperature"라는 라벨을 표시합니다.

X축과 Y축의 스케일 설정

X축과 Y축의 스케일을 설정하여 그래프의 표현을 조절할 수 있습니다. X축이나 Y축의 값이 일정 간격으로 표시되도록 설정하거나, 로그 스케일로 표시할 수도 있습니다.

xscale() 함수와 yscale() 함수를 사용하여 X축과 Y축의 스케일을 설정할 수 있습니다. 아래 예제는 X축을 로그 스케일로 설정하는 방법입니다.

plt.plot(x, y)
plt.xscale("log")

위 예제에서 xscale("log")는 X축의 스케일을 로그 스케일로 설정합니다.

이처럼 X축과 Y축의 설정을 조절하여, 그래프의 범위와 라벨, 스케일을 다양하게 설정할 수 있습니다. 이를 통해 보다 정교한 선 차트를 그릴 수 있습니다.

6. 추가 요소 설정

선 차트를 보다 더 깔끔하고 의미 있는 그래프로 만들기 위해 추가 요소를 설정할 수 있습니다. 눈금선과 그리드 추가, 범례 추가, 주석과 라인 마커 등을 설정해보겠습니다.

눈금선과 그리드 추가하기

차트에 눈금선을 추가하면 데이터의 위치를 시각적으로 파악하기 쉽게 됩니다. 이를 통해 데이터 패턴이나 추세를 더 잘 이해할 수 있습니다.

plt.grid() 함수를 사용하여 그리드를 추가할 수 있습니다. 아래 예제는 X축과 Y축에 눈금선과 그리드를 추가하는 방법입니다.

plt.plot(x, y)
plt.grid(True)

위 예제에서 grid(True)는 그리드를 표시하도록 설정합니다. grid(False)로 설정하면 그리드가 표시되지 않습니다.

범례 추가하기

다중 라인 차트의 경우 각 라인이 어떤 데이터를 나타내는지 알기 위해 범례를 추가할 수 있습니다. 이를 통해 그래프의 의미를 명확하게 전달할 수 있습니다.

plt.legend() 함수를 사용하여 범례를 추가할 수 있습니다. 아래 예제는 두 개의 라인 차트를 그리고, 각각 "A 그룹"과 "B 그룹"을 나타내는 범례를 추가하는 방법입니다.

plt.plot(x, y1, label="A 그룹")
plt.plot(x, y2, label="B 그룹")
plt.legend()

위 예제에서 legend() 함수는 범례를 표시하도록 설정합니다. label 속성을 이용하여 각 라인의 라벨을 설정할 수 있습니다.

주석과 라인 마커 추가하기

특정 데이터 포인트를 강조하기 위해 주석이나 라인 마커를 추가할 수 있습니다. 이를 통해 데이터의 특정 상황이나 이벤트를 강조할 수 있습니다.

plt.annotate() 함수를 사용하여 주석을 추가할 수 있습니다. 아래 예제는 주석과 라인 마커를 추가하는 방법입니다.

plt.plot(x, y)
plt.annotate("Max", xy=(3, 50), xytext=(5, 55), arrowprops=dict(facecolor='black', arrowstyle='->'))
plt.plot(3, 50, 'ro')

위 예제에서 annotate() 함수는 "Max"이라는 텍스트를 xy 좌표 (3, 50)에 추가하며, xytext 속성은 텍스트의 위치를 조절합니다. 'ro'는 빨간색 원 형태의 라인 마커를 그리는 명령입니다.

이처럼 추가 요소를 설정하여 선 차트에 더 다양한 정보를 표현할 수 있습니다. 이를 통해 그래프의 가독성을 높여 효과적인 시각화를 구현할 수 있습니다.

7. 선 차트 활용 예시

이번에는 실제로 선 차트를 활용하는 예시를 살펴보겠습니다. 선 차트는 데이터의 추세와 변화를 시각적으로 파악하기에 아주 유용하며, 다양한 분야에서 활용됩니다.

예시 1: 주식 가격 추이 확인하기

주식 가격은 시간에 따라 변동되므로, 선 차트를 통해 주식의 가격 추이를 확인할 수 있습니다. 가격 데이터를 불러오고, plt.plot() 함수를 사용하여 선 차트를 그려보겠습니다.

import pandas as pd
import matplotlib.pyplot as plt

# 데이터셋 불러오기
df = pd.read_csv('stock_prices.csv')

# 날짜와 가격 데이터 추출
dates = df['Date']
prices = df['Close']

# 선 차트 그리기
plt.plot(dates, prices)
plt.title("주식 가격 추이")
plt.xlabel("날짜")
plt.ylabel("가격")
plt.xticks(rotation=45)
plt.show()

위 예시는 주식 가격 데이터를 불러온 뒤, 선 차트로 가격의 추이를 시각화하는 코드입니다. plt.title() 함수로 차트의 제목을 설정하고, plt.xlabel()plt.ylabel() 함수로 X축과 Y축의 라벨을 설정합니다. plt.xticks(rotation=45)은 X축 눈금 라벨이 45도로 회전하여 겹치지 않게 표시됩니다.

예시 2: 시간대별 온도 변화 확인하기

기상 데이터를 이용하여 선 차트로 시간대별 온도 변화를 확인할 수도 있습니다. 시간에 따른 온도 데이터를 불러와서 선 차트로 시각화하는 예시를 살펴보겠습니다.

import pandas as pd
import matplotlib.pyplot as plt

# 데이터셋 불러오기
df = pd.read_csv('weather_data.csv')

# 시간대별 온도 데이터 추출
hours = df['Hour']
temperatures = df['Temperature']

# 선 차트 그리기
plt.plot(hours, temperatures)
plt.title("시간대별 온도 변화")
plt.xlabel("시간")
plt.ylabel("온도 (℃)")
plt.xticks(range(24))
plt.show()

위 예시에서도 마찬가지로 데이터를 불러온 뒤, 선 차트를 그려 시간대별 온도 변화를 확인하는 코드입니다. plt.xticks(range(24))는 X축의 눈금 위치를 0부터 23까지 설정하여 시간대를 나타냅니다.

위 예시들은 선 차트를 활용하여 주식 가격이나 온도와 같은 데이터의 추이를 시각화한 것입니다. 선 차트는 데이터의 변화를 쉽게 파악할 수 있고, 다양한 분야에서 활용할 수 있는 강력한 도구입니다.

8. 차트 저장 및 출력

선 차트를 만들었다면, 이를 저장하거나 출력하는 방법에 대해서 알아보겠습니다.

8.1. 차트 이미지 파일로 저장하기

선 차트를 이미지 파일로 저장하려면, plt.savefig() 함수를 사용합니다. 이 함수에 저장할 파일의 경로와 파일 이름을 전달하여 호출하면 됩니다.

import matplotlib.pyplot as plt

# 선 차트 그리기
plt.plot(x, y)

# 차트 이미지 파일로 저장
plt.savefig('chart.png')

위 코드에서 plt.savefig('chart.png')는 현재 그려진 차트를 'chart.png'라는 파일로 저장하는 예시입니다. 저장되는 이미지 파일의 형식은 파일 이름의 확장자에 따라 결정됩니다.

8.2. 차트 출력 환경 설정

차트를 출력할 때, 그림의 크기나 해상도 등을 조절하고 싶을 수 있습니다. 이를 위해 먼저, 출력할 설정을 지정한 뒤, plt.figure() 함수를 사용하여 설정을 적용한 후 선 차트를 그리면 됩니다.

import matplotlib.pyplot as plt

# 출력 설정
plt.figure(figsize=(8,6), dpi=100)

# 선 차트 그리기
plt.plot(x, y)
plt.show()

위 코드에서 plt.figure(figsize=(8,6), dpi=100)는 차트를 출력할 크기를 지정하는 예시입니다. figsize는 출력할 그림의 가로와 세로 크기를 인치 단위로 설정하고, dpi는 해상도를 지정합니다. 설정 후 plt.plot() 함수를 호출하여 선 차트를 그린 후, plt.show()를 사용하여 그림을 화면에 출력합니다.

이렇게 차트를 저장하거나 출력하는 방법을 통해 선 차트를 활용한 데이터 시각화를 더욱 유연하고 다양한 형태로 활용할 수 있습니다.

 

본 블로그 글은 G-ChatBot 서비스를 이용하여 AI(ChatGPT) 도움을 받아 작성하였습니다.

https://gboysking.net

 

G-ChatBot

Our service is an AI chatbot service developed using OpenAI API. Our service features a user-friendly interface, efficient management of token usage, the ability to edit conversation content, and management capabilities.

gboysking.net

반응형