안녕하세요! 오늘은 파이썬으로 하는 시각화 활용 Line plot에 대해 포스팅 하려고 합니다.
- Line plot이란?
시간이나 연속적인 값을 나타낼 때 사용되는 그래프로, 일반적인 선 그래프 입니다.
보통 x축에는 연속적인 변수를 y축에는 수치형 데이터를 배치해서 사용하는 경우가 일반적입니다.
저는 보통 식을 그릴 때는 matplotlib, 데이터 프레임이 있는 경우에는 seaborn, matplotlib 두 개를 함께 사용해서 line plot을 그립니다.
matplotlib로 단일 그래프 그리기
우선 먼저 matplotlib를 사용해서 간단한 그래프를 그려보겠습니다.
아래처럼 숫자를 직접 입력하거나, 특정 식이 존재한다면 matplotlib만 사용해서 그리는 것이 간단합니다!
import matplotlib.pyplot as plt
# 왼쪽이 x 값, 오른쪽이 y 값
plt.plot([1, 2, 3, 4], [2, 3, 5, 10])
plt.show()
import numpy as np
import matplotlib.pyplot as plt
# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
seaborn을 함께 사용하여 단일 그래프 그리기
seaborn은 데이터 프레임과 호환성이 좋기 때문에 보통 데이터 프레임으로 사용합니다.
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.cos(x)
df = pd.DataFrame({"X": x, "Y": y})
sns.lineplot(x="X", y="Y", data=df)
그래프 커스텀 하기
사실 그래프를 그리는 것은 정말 간단합니다!
하지만 그래프를 단순히 그리는 것과 이를 커스텀해서 사용하는 것은 정말 큰 차이가 있습니다.
지금부터는 다양하게 그래프를 커스텀하는 방법에 대해 소개해드리겠습니다!
- 색상 사용하기
그래프에 색상을 입히는 것입니다.
파이썬에서 사용할 수 있는 색상은 아래 포스팅을 참고해주세요!
[시각화] 파이썬 시각화 색상 정리 (Matplotlib, Seaborn)
안녕하세요! 오늘은 데이터 분석에서 정말 중요한 그래프 색상을 정리하는 포스팅을 진행하도록 하겠습니다. 데이터 분석에서 시각화는 정말 중요한데요.똑같이 데이터 분석을 진행했다고 해
yhj9855.com
# matplot
plt.plot(x, y, color='deepskyblue')
# seaborn
sns.lineplot(x="X", y="Y", data=df, color='deeppink')
- 그래프 동시에 그리기
하나의 영역에 여러 개의 그래프를 그릴 수 있습니다.
그래프가 N개면 N개만큼 그려주면 동일 영역에 그려지는 것을 확인하실 수 있습니다.
# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.cos(x)
y1 = np.sin(x)
df = pd.DataFrame({"X": x, "Y": y})
df1 = pd.DataFrame({"X": x, "Y": y1})
# seaborn
sns.lineplot(x="X", y="Y", data=df, color='lightskyblue')
sns.lineplot(x="X", y="Y", data=df1, color='lightcoral')
# matplotlib
plt.plot(x, y, color='deepskyblue')
plt.plot(x, y1, color='deeppink')
seaborn에서는 하나의 데이터 프레임에서 특정 열을 기준으로 두 개의 그래프를 나눌 수 있습니다.
아래 코드를 보시면 Y열이 label을 기준으로 cos그래프와 sin그래프가 나눠져있기 때문에 이를 label로 분리하여, 그래프를 그릴 수 있습니다.
데이터 분석을 하실 때 생각보다 많이 사용되기 때문에 잘 활용하시면 좋습니다!
# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.cos(x)
y1 = np.sin(x)
df1 = pd.DataFrame({"X": x, "Y": y, "label": 'cos'})
df2 = pd.DataFrame({"X": x, "Y": y1, "label":'sin'})
# df1 밑에 df2를 붙이는 작업
df = pd.concat([df1, df2], ignore_index= True)
# 그래프 영역 크기 정하기 (가로/세로)
plt.figure(figsize=(8, 5))
sns.lineplot(x="X", y="Y", data=df, hue='label', palette=['gold', 'limegreen'])
- 그래프 축/제목/범례 설정
그래프 제목, x축, y축, 범례 등을 직접 지정할 수 있습니다!
축, 제목, 범례를 설정하는 방법 및 한글 설정하는 자세한 과정은 아래 포스팅을 참고해주세요.
[시각화] 파이썬 시각화 활용 - 범례, 축, 제목 (with 한글 지정)
ㄱ안녕하세요! 오늘은 파이썬으로 하는 시각화 활용 공통 사항에 대해 포스팅 하려고 합니다. 어떤 그래프를 그려도, x축/y축/범례/제목 등은 공통적으로 지정해야 하는데요.해당 부분이 간단해
yhj9855.com
- 그래프 마크 설정하기
그래프 내 x 좌표마다 마크를 설정할 수 있습니다.
# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.cos(x)
y1 = np.sin(x)
df = pd.DataFrame({"X": x, "Y": y})
df1 = pd.DataFrame({"X": x, "Y": y1})
plt.figure(figsize=(8, 5))
# seaborn
sns.lineplot(x="X", y="Y", data=df, color='lightskyblue', marker='o')
sns.lineplot(x="X", y="Y", data=df1, color='lightcoral', marker='*', markersize=9)
# matplotlib
plt.plot(x, y, color='deepskyblue', marker='o', markersize = 4)
plt.plot(x, y1, color='deeppink', marker='^', markersize = 5)
하지만 이렇게 x좌표마다 마크를 설정하는 것이 아닌 특정 좌표마다 마크를 설정하고 싶으실 수도 있습니다.
그럴 때는 그래프 위에 점으로 된 그래프를 하나 더 그리는 방향으로 진행할 수 있습니다!
아래 코드는 5번째마다 그래프 위에 점을 찍는다고 보시면 됩니다.
for문 안에 있는 코드를 변경하시면 원하시는 곳에 마크 표시를 하실 수 있습니다.
# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.cos(x)
y1 = np.sin(x)
df = pd.DataFrame({"X": x, "Y": y})
df1 = pd.DataFrame({"X": x, "Y": y1})
plt.figure(figsize=(8, 5))
sns.lineplot(x="X", y="Y", data=df, color='orange')
sns.lineplot(x="X", y="Y", data=df1, color='limegreen')
for i in range(len(x)) :
if i%5 == 0 :
plt.scatter(x[i], y[i], color='darkorange', s=15)
plt.scatter(x[i], y1[i], color='forestgreen', s=15)
- 그래프 텍스트 표기하기
그래프 내 텍스트를 표기할 수도 있습니다.
텍스트 표기는 위에 마크 설정하는 것처럼 그래프 위에 텍스트를 하나 더 그리는 방향으로 진행할 수 있습니다.
# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.cos(x)
y1 = np.sin(x)
df = pd.DataFrame({"X": x, "Y": y})
df1 = pd.DataFrame({"X": x, "Y": y1})
plt.figure(figsize=(8, 5))
sns.lineplot(x="X", y="Y", data=df, color='orange')
sns.lineplot(x="X", y="Y", data=df1, color='limegreen')
for i in range(len(x)) :
if i%5 == 0 :
plt.scatter(x[i], y[i], color='darkorange', s=15)
plt.text(x[i]+0.02, y[i]+0.01, f'{y[i]:.1f}', color='darkorange', ha='left', va='bottom', fontsize=8, fontweight='bold')
plt.scatter(x[i], y1[i], color='forestgreen', s=15)
plt.text(x[i]+0.05, y1[i]+0.01, f'{y1[i]:.1f}', color='forestgreen', ha='left', va='bottom', fontsize=8, fontweight='bold')
plt.xlabel('')
plt.ylabel('')
여기까지 line plot 활용을 정리해보았습니다!
단순히 그래프를 그리는 것 이상으로 활용하는 부분이 정말 생각보다 많았네요ㅠㅠ
그래프가 잘 숙련되시면 아래 같은 그래프를 그리실 수 있습니다.
코드에 궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

★읽어주셔서 감사합니다★
'Python(파이썬) > visualization(시각화)' 카테고리의 다른 글
[시각화] 파이썬 시각화 활용 - 범례, 축, 제목 (with 한글 지정) (1) | 2025.03.20 |
---|---|
[시각화] 파이썬 시각화 색상 정리 (Matplotlib, Seaborn) (1) | 2025.01.14 |