pandas 그래프 병합 / 함수 생성 및 출력

SOOYEON·2022년 8월 24일
0

데이터 시각화

목록 보기
1/3

라이브러리 & 데이터 불러오기

import matplotlib.pyplot as plt
import seaborn as sns

# data list
price = test.가격.tolist()
month = test..tolist()
kg = 기타감귤물량['물량(kg)'].tolist()

그래프 표기

fig = plt.figure(figsize=(10,6)) # Figsize
fig.set_facecolor('white') # Figure background color
ax1 = fig.add_subplot() # axes 생성
 
colors = sns.color_palette('Blues', len(month)) # bar color
 
xtick_label_position = list(range(len(month))) # x축 눈금 라벨이 표시될 x좌표
ax1.set_xticks(xtick_label_position) # x축 눈금 
ax1.set_xticklabels(month) # x축 눈금 라벨
ax1.set_ylabel('거래물량(kg)',rotation=90)
plt.ticklabel_format(style='plain', axis='y',useOffset = False) # exponential 표기 변경
# plt.ylabel('거래물량(kg)',rotation=90)

ax1.bar(xtick_label_position, kg, color=colors)  # bar 표기 
 
color = 'navy'
ax2 = ax1.twinx() ## 새로운 axis 생성
ax2.plot(xtick_label_position, price, color=color, linestyle='--', marker='o') # line 그래프 
ax2.tick_params(axis='y', labelcolor='gray') # 눈금 label color
ax2.set_ylabel('월별 가격(원)',rotation=270)
# plt.ylabel('월별 가격(원)',rotation=270)

plt.title('기타감귤 월별 거래정보 (2021)', fontsize=14)
plt.show()


함수

# import matplotlib.pyplot as plt
# import seaborn as sns

def bar_line_graph(kind):
    감귤물량 = df2021[df2021['품종']==kind].groupby('월')[['물량(kg)']].sum().reset_index()
    감귤가격 = df2021[df2021['품종']==kind].groupby('월')[['가격']].mean().reset_index()

    price = 감귤가격.가격.tolist()
    month = 감귤가격..tolist()
    kg = 감귤물량['물량(kg)'].tolist()

    fig = plt.figure(figsize=(10,6)) # Figsize
    fig.set_facecolor('white') # Figure background color
    ax1 = fig.add_subplot() # axes 생성

    colors = sns.color_palette('Purples', len(month)) # bar color

    xtick_label_position = list(range(len(month))) # x축 눈금 라벨이 표시될 x좌표
    ax1.set_xticks(xtick_label_position) # x축 눈금 
    ax1.set_xticklabels(month) # x축 눈금 라벨
    ax1.set_ylabel('거래물량(kg)',rotation=90)
    plt.ticklabel_format(style='plain', axis='y',useOffset = False) # exponential 표기 변경
    # plt.ylabel('거래물량(kg)',rotation=90)

    ax1.bar(xtick_label_position, kg, color=colors)  # bar 표기 

    color = 'indigo'
    ax2 = ax1.twinx() ## 새로운 axis 생성
    ax2.plot(xtick_label_position, price, color=color, linestyle='--', marker='o') # line 그래프 
    ax2.tick_params(axis='y', labelcolor='gray') # 눈금 label color
    ax2.set_ylabel('월별 가격(원)',rotation=270)
    # plt.ylabel('월별 가격(원)',rotation=270)

    plt.title(f'{kind} 감귤 월별 거래정보 (2021)', fontsize=14)
    plt.show()

감귤 종류 리스트

kind_list = df2021['품종'].unique().tolist()

감귤 품종별 그래프 출력

line 그래프 : 변동 가격(원)
bar 그래프 : 거래 물량(kg)

for k in kind_list:
    bar_line_graph(k)

0개의 댓글