개발언어 사용자 분석 - 데이터 시각화 4

dpwl·2024년 6월 22일

Data Analysis with Python

목록 보기
15/48

1. 데이터 시각화

16)

plt.figure(figsize=(10, 5))
plt.boxplot(test, showfliers=False)
plt.show()

상자 그림(boxplot)은 데이터의 분포를 시각화하는 데 사용되는 효과적인 도구이다. 상자 그림은 데이터의 중앙값, 사분위수, 이상치 등을 표시하여 데이터의 대략적인 분포를 파악할 수 있도록 도와준다.

  • showfliers 매개변수: 상자 그림(boxplot)에서 이상치(outliers)를 표시할지 여부를 지정한다.

17)

plt.figure(figsize=(10, 5))
plt.boxplot(test, vert=False, showfliers=False)
plt.show()
  • boxplot():
    • vert 매개변수: 상자 그림(boxplot)을 수직 방향이 아니라 수평 방향으로 그릴지를 결정한다.

18)

plt.figure(figsize=(10, 5))
plt.boxplot(test, vert=False, showfliers=False, showmeans=True, meanline=True)
plt.show()
  • boxplot():
    • showmeans 매개변수: 상자 그림(boxplot)에서 평균값을 보여줄지 여부를 결정한다. 기본값은 False이며, 이를 True로 설정하면 상자 그림에 평균값을 표시한다.
    • meanline 매개변수: 상자 그림에서 평균값을 나타내는 선을 표시할지 여부를 결정한다. True로 설정되어 있어야만 이 매개변수가 작동하며, 기본값은 False이다.

19)

unique_langs = merged_df['LanguageHaveWorkedWith'].dropna().unique()
unique_langs

plt.figure(figsize=(10, 15))

plt.boxplot([merged_df[merged_df['LanguageHaveWorkedWith']==lang][COMP_KRW] for lang in unique_lang],
            vert=False,
            showfliers=False,
            showmeans=True,
            meanline=True,
            labels=unique_langs)

plt.show()

20)

plt.figure(figsize=(10, 15))

box = plt.boxplot([merged_df[merged_df['LanguageHaveWorkedWith']==lang][COMP_KRW] for lang in unique_lang],
            vert=False,
            showfliers=False,
            showmeans=True,
            meanline=True,
            labels=unique_langs,
            patch_artist=True,
            boxprops={'facecolor':'teal'})
plt.setp(box['medians'], color='white')
plt.setp(box['means'], color='yellow', linewidth=1)

plt.title('언어별 연봉 분표(KRW)', fontsize=15, fontweight='bold')
plt.xlabel('연봉(만원)', fontweight='bold')
plt.ylabel('개발 언어', fontweight='bold')
plt.ticklabel_format(style='plain', axis='x')
plt.show()

  • patch_artist 매개변수: 상자 그림(Boxplot)에서 상자의 내부를 채우는 데 사용되는 패치 아티스트를 활성화하는 데 사용된다. 상자의 내부를 채우는 데 패치 아티스트를 사용하면 상자의 색상을 변경하거나 다양한 패턴을 적용할 수 있다. 이 매개변수를 True로 설정하면 상자의 내부를 채우고자 할 때 사용된다.
patch_artist=True
  • boxprops 매개변수: 상자의 속성을 설정하는 데 사용된다. 상자 그림에서 상자의 속성을 변경하려는 경우에 유용하다. 예를 들어, 'facecolor' 속성을 사용하여 상자의 내부 색상을 지정할 수 있다.
boxprops={'facecolor':'teal'}
  • plt.setp() 함수: 객체의 속성을 설정하는 데 사용된다.
# 중앙값 선의 색상을 흰색으로 설정
plt.setp(box['medians'], color='white')

# 평균값 선의 색상을 노란색으로 설정하고 두께를 1로 지정
plt.setp(box['means'], color='yellow', linewidth=1)

평균값은 상자 그림에서 기본적으로 표시되지 않지만, 'showmeans=True' 옵션을 사용하여 표시할 수 있다.

위의 코드를 함수화 작업하기

def draw_salary_boxplot(df, target, title, ylabel, showfliers=False, figsize=(10, 20):
    label_values = df[target].dropna().unique()
    plt.figure(figsize=figsize)
    box = plt.boxplot([df[df[target]==value][COMP_KRW] for value in label_values],
                      vert=False,
                      showfliers=showfliers,
                      showmeans=True,
                      meanline=True,
                      labels=label_values,
                      patch_artist=True,
                      boxprops={'facecolor':'teal'})
    plt.setp(box['medians'], color='white')
    plt.setp(box['means'], color='yellow', linewidth=1)

    plt.title(title, fontsize=15, fontweight='bold')
    plt.xlabel('연봉(만원)', fontweight='bold')
    plt.ylabel(ylabel, fontweight='bold')
    plt.ticklabel_format(style='plain', axis='x')
    plt.show()
draw_salary_boxplot(df=merged_df, target='LanguageHaveWorkedWith', title='언어별 연봉 분포(KRW) - 이상치 제외', ylabel='개발언어')

profile
거북선통통통통

0개의 댓글