
판다스는 matplotlib과 연동하여 데이터를 쉽게 시각화할 수 있는 기능을 제공함. plot() 메서드를 사용하여 다양한 그래프를 그릴 수 있으며, 데이터의 유형에 따라 적절한 그래프를 선택하여 시각화를 수행함.
시리즈(Series)는 1차원 데이터 구조로, 시간에 따른 값의 변화나 특정 변수의 값을 표현하는 데 유용함.
Series.plot()을 사용하여 간단한 선 그래프를 그릴 수 있음.marker 옵션을 추가하여 점을 강조할 수도 있음.import pandas as pd
import matplotlib.pyplot as plt
s = pd.Series([1, 3, 2, 5, 7, 8], index=['A', 'B', 'C', 'D', 'E', 'F'])
s.plot(marker='o', linestyle='-')
plt.title("Series Line Plot") # 그래프 제목 추가
plt.xlabel("Index") # x축 라벨
plt.ylabel("Values") # y축 라벨
plt.grid(True) # 격자 추가
plt.show()
kind='bar' 옵션을 사용하여 막대 그래프를 생성할 수 있음.rot 옵션을 사용하여 x축 라벨 회전 가능.s.plot(kind='bar', color='skyblue', rot=0)
plt.title("Series Bar Plot")
plt.xlabel("Categories")
plt.ylabel("Values")
plt.show()
데이터프레임(DataFrame)은 2차원 데이터 구조로 여러 개의 열(column)과 행(row)으로 구성됨. 여러 변수의 값을 비교할 때 사용됨.
df = pd.DataFrame({
'A': [1, 3, 2, 4],
'B': [2, 4, 5, 7]
}, index=['Q1', 'Q2', 'Q3', 'Q4'])
df.plot(marker='o', linestyle='-')
plt.title("DataFrame Line Plot")
plt.xlabel("Quarter")
plt.ylabel("Values")
plt.grid(True)
plt.show()
kind='bar' 옵션을 사용하여 막대 그래프를 만들 수 있음.df.plot(kind='bar', color=['blue', 'orange'])
plt.title("DataFrame Bar Plot")
plt.xlabel("Quarter")
plt.ylabel("Values")
plt.legend(title="Categories")
plt.show()
stacked=True 옵션을 사용하여 누적 막대 그래프를 생성할 수 있음.df.plot(kind='bar', stacked=True, color=['blue', 'orange'])
plt.title("Stacked Bar Plot")
plt.xlabel("Quarter")
plt.ylabel("Total Values")
plt.legend(title="Categories")
plt.show()
style 옵션을 활용하여 선 스타일을 변경할 수 있음.'-', '--', ':', '-.' 등의 스타일을 조합할 수 있음.df.plot(style=['--', 'o-'])
plt.title("Styled Line Plot")
plt.xlabel("Quarter")
plt.ylabel("Values")
plt.grid(True)
plt.show()
bins 옵션을 통해 구간 개수를 조정할 수 있음.df.hist(bins=5, color='lightblue', edgecolor='black')
plt.title("Histogram Plot")
plt.xlabel("Value Ranges")
plt.ylabel("Frequency")
plt.show()
df.plot(kind='scatter', x='A', y='B', color='red')
plt.title("Scatter Plot")
plt.xlabel("A Values")
plt.ylabel("B Values")
plt.show()
plt.text()를 사용하여 그래프 위에 주석을 추가할 수 있음.arrowprops를 사용하면 화살표 표시 가능.ax = df.plot(marker='o')
plt.text(1, 3, 'Peak Point', fontsize=12, color='red') # (x, y) 위치에 텍스트 추가
plt.annotate('Max Value', xy=(3, 7), xytext=(2, 6),
arrowprops=dict(facecolor='black', arrowstyle='->')) # 화살표 추가
plt.show()