|
import streamlit as st |
|
import pandas as pd |
|
import seaborn as sns |
|
import matplotlib.pyplot as plt |
|
import plotly.express as px |
|
from PIL import Image |
|
|
|
|
|
|
|
|
|
def run() : |
|
|
|
st.markdown("<h1 style='text-align: center;'>Exploratory Data Analysis</h1>", unsafe_allow_html=True) |
|
st.write('Berikut adalah EDA dari setiap feature') |
|
|
|
|
|
df_eda = pd.read_csv('employee_eda.csv') |
|
|
|
|
|
st.subheader('**EDA Feature Age**') |
|
st.write('Dari visualisasi dibawah dapat disimpulkan bahwa :') |
|
st.markdown('- Umur karyawan terpusat pada 25-30 tahun (2.350 karyawan/50.5%)') |
|
st.markdown('- Karyawan yang paling banyak *resign* adalah karyawan dengan *range* umur 25-30 tahun (787 karyawan). Kemungkinan banyak pada *range* ini karena, karyawan paling banyak pada *range* umur tersebut ') |
|
st.markdown('- Akan tetapi jika dilihat dari persentase *resign* pada setiap kelas, maka pada *range* umur 20-25 tahun memiliki persentase *resign* tertinggi. Kemudian pada *range* 25-40 tahun cenderung stabil dan persentase turun di angka 28% pada *range* 40-45 tahun') |
|
|
|
|
|
fig, ax =plt.subplots(1,2,figsize=(8,4)) |
|
sns.countplot(x='AgeBin', data=df_eda, palette="winter", ax=ax[0]) |
|
ax[0].set_xlabel("Employee Age", fontsize= 12) |
|
ax[0].set_ylabel("# of Employee", fontsize= 12) |
|
fig.suptitle('Distribusi Employee Age', fontsize=18, fontweight='bold') |
|
ax[0].set_ylim(0,2500) |
|
for p in ax[0].patches: |
|
ax[0].annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+45), ha='center', va='center',fontsize = 8) |
|
|
|
df_eda['AgeBin'].value_counts().plot(kind='pie', autopct='%1.1f%%', textprops = {"fontsize":8}) |
|
ax[1].set_ylabel("% of Employee", fontsize= 12) |
|
st.pyplot(fig) |
|
|
|
|
|
col1, col2 = st.columns(2) |
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.countplot(data = df_eda, x = 'AgeBin', hue="LeaveOrNot", palette = 'winter', order = ['(20, 25]', '(25, 30]', '(30, 35]', '(35, 40]', '(40, 45]']) |
|
plt.title('Distribusi Range Age', fontsize=18, fontweight='bold') |
|
plt.xlabel("Range Age", fontsize= 12) |
|
plt.ylabel("# of Employee", fontsize= 12) |
|
ax.tick_params(axis="x", labelsize= 9.5) |
|
plt.legend(fontsize=10,title='Klasifikasi LeaveOrNot', loc='upper right', labels=['Not Leave', 'Leave']) |
|
for p in ax.patches: |
|
ax.annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+25), ha='center', va='center',fontsize = 11) |
|
plt.ylim(0,1700) |
|
col1.pyplot(fig) |
|
|
|
|
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.barplot(x = 'AgeBin', y = 'LeaveOrNot', data = df_eda, palette = 'winter', order = ['(20, 25]', '(25, 30]', '(30, 35]', '(35, 40]', '(40, 45]'], errorbar=None) |
|
plt.xlabel("Range Age", fontsize= 12) |
|
plt.ylabel("% Leave", fontsize= 12) |
|
plt.title('% Leave berdasarkan Age', fontsize=18, fontweight='bold') |
|
plt.ylim(0,0.5) |
|
for p in ax.patches: |
|
ax.annotate("%.2f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+0.012), ha='center', va='center',fontsize = 11) |
|
col2.pyplot(fig) |
|
|
|
|
|
|
|
st.subheader('**EDA Feature ExperienceInCurrentDomain**') |
|
st.write('Dari visualisasi dibawah dapat disimpulkan bahwa :') |
|
st.markdown('- Pengalaman karyawan pada domain-nya terpusat pada 2 tahun (1.087 karyawan/23.4%)') |
|
st.markdown('- Karyawan yang paling banyak *resign* adalah karyawan dengan *range* pengalaman 2 tahun (399 karyawan). Kemungkinan banyak pada *range* ini karena, karyawan paling banyak pada *range* pengalaman tersebut ') |
|
st.markdown('- Akan tetapi jika dilihat dari persentase *resign* pada setiap kelas, maka persentase *resign* pada setiap kelas pengalaman tidak jauh berbeda (sekitar 30%)') |
|
|
|
|
|
fig, ax =plt.subplots(1,2,figsize=(8,4)) |
|
sns.countplot(x='ExperienceInCurrentDomain', data=df_eda, palette="winter", ax=ax[0]) |
|
ax[0].set_xlabel("Experience In Current Domain", fontsize= 12) |
|
ax[0].set_ylabel("# of Employee", fontsize= 12) |
|
fig.suptitle('Distribusi Experience In Current Domain', fontsize=18, fontweight='bold') |
|
ax[0].set_ylim(0,1300) |
|
for p in ax[0].patches: |
|
ax[0].annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+25), ha='center', va='center',fontsize = 8) |
|
df_eda['ExperienceInCurrentDomain'].value_counts().plot(kind='pie', autopct='%1.1f%%', textprops = {"fontsize":8}) |
|
ax[1].set_ylabel("% of Employee", fontsize= 12) |
|
st.pyplot(fig) |
|
|
|
|
|
col1, col2 = st.columns(2) |
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.countplot(data = df_eda, x = 'ExperienceInCurrentDomain', hue="LeaveOrNot", palette = 'winter') |
|
plt.title('Distribusi Experience In Current Domain', fontsize=18, fontweight='bold') |
|
plt.xlabel("Experience In Current Domain", fontsize= 12) |
|
plt.ylabel("# of Employee", fontsize= 12) |
|
ax.tick_params(axis="x", labelsize= 9.5) |
|
plt.legend(fontsize=10,title='Klasifikasi LeaveOrNot', loc='upper right', labels=['Not Leave', 'Leave']) |
|
for p in ax.patches: |
|
ax.annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+15), ha='center', va='center',fontsize = 11) |
|
plt.ylim(0,800) |
|
col1.pyplot(fig) |
|
|
|
|
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.barplot(x = 'ExperienceInCurrentDomain', y = 'LeaveOrNot', data = df_eda, palette = 'winter', errorbar=None) |
|
plt.xlabel("Experience In Current Domain", fontsize= 12) |
|
plt.ylabel("% Leave", fontsize= 12) |
|
plt.title('% Leave berdasarkan Experience In Current Domain', fontsize=18, fontweight='bold') |
|
plt.ylim(0,0.5) |
|
for p in ax.patches: |
|
ax.annotate("%.2f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+0.012), ha='center', va='center',fontsize = 11) |
|
col2.pyplot(fig) |
|
|
|
|
|
|
|
st.subheader('**EDA Feature JoiningYear**') |
|
st.write('Dari visualisasi dibawah dapat disimpulkan bahwa :') |
|
st.markdown('- Karyawan paling banyak bergabung pada tahun 2017 (1.108 karyawan/23.8%)') |
|
st.markdown('- Karyawan yang paling banyak *resign* adalah karyawan yang bergabung pada tahun 2018 (362 karyawan)') |
|
st.markdown('- Jika dilihat dari persentase *resign* pada setiap kelas, maka persentase *resign* untuk karyawan yang bergabung pada tahun 2018 lebih besar dari tahun lain-nya (99%)') |
|
|
|
|
|
fig, ax =plt.subplots(1,2,figsize=(8,4)) |
|
sns.countplot(x='JoiningYear', data=df_eda, palette="winter", ax=ax[0]) |
|
ax[0].set_xlabel("JoiningYear", fontsize= 12) |
|
ax[0].set_ylabel("# of Employee", fontsize= 12) |
|
fig.suptitle('Distribusi JoiningYear', fontsize=18, fontweight='bold') |
|
ax[0].set_ylim(0,1200) |
|
for p in ax[0].patches: |
|
ax[0].annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+22), ha='center', va='center',fontsize = 8) |
|
|
|
df_eda['JoiningYear'].value_counts().plot(kind='pie',autopct='%1.1f%%', textprops = {"fontsize":8}) |
|
ax[1].set_ylabel("% of Employee", fontsize= 12) |
|
st.pyplot(fig) |
|
|
|
|
|
col1, col2 = st.columns(2) |
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.countplot(data = df_eda, x = 'JoiningYear', hue="LeaveOrNot", palette = 'winter') |
|
plt.xlabel("JoiningYear", fontsize= 12) |
|
plt.ylabel("# of Employee", fontsize= 12) |
|
plt.title('JoiningYear vs LeaveOrNot', fontsize=18, fontweight='bold') |
|
plt.legend(fontsize=10,title='LeaveOrNot', loc='upper right', labels=['Not Leave', 'Leave']) |
|
for p in ax.patches: |
|
ax.annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+15), ha='center', va='center',fontsize = 11) |
|
plt.ylim(0,900) |
|
col1.pyplot(fig) |
|
|
|
|
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.barplot(x = "JoiningYear", y = "LeaveOrNot", data = df_eda, palette = 'winter', errorbar= None) |
|
plt.ylabel("% Leave", fontsize= 14) |
|
plt.xlabel("JoiningYear", fontsize= 14) |
|
plt.ylim(0,1.2) |
|
plt.title('% Leave vs JoiningYear', fontsize=18, fontweight='bold') |
|
for p in ax.patches: |
|
ax.annotate("%.2f" %(p.get_height()), (p.get_x()+0.23, p.get_height()+0.01),fontsize=13) |
|
col2.pyplot(fig) |
|
|
|
|
|
st.subheader('**EDA Feature LeaveOrNot**') |
|
st.write('Dari visualisasi dibawah dapat disimpulkan bahwa :') |
|
st.markdown('- Karyawan yang tidak *resign* lebih banyak dari pada karyawan yang *resign* dengan perbandingan 2 (65.6%) : 1 (34.4%)') |
|
|
|
|
|
fig, ax =plt.subplots(1,2,figsize=(8,4)) |
|
sns.countplot(x='LeaveOrNot', data=df_eda, palette="winter", ax=ax[0]) |
|
ax[0].set_xlabel("LeaveOrNot", fontsize= 12) |
|
ax[0].set_ylabel("# of Employee", fontsize= 12) |
|
fig.suptitle('Distribusi LeaveOrNot', fontsize=18, fontweight='bold') |
|
ax[0].set_ylim(0,3300) |
|
plt.xlabel("Leave Or Not", fontsize= 12) |
|
plt.ylabel("# of Employee", fontsize= 12) |
|
ax[0].set_xticks([0,1], ['Not Leave', 'Leave'], fontsize = 11) |
|
for p in ax[0].patches: |
|
ax[0].annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+55), ha='center', va='center',fontsize = 10) |
|
|
|
df_eda['LeaveOrNot'].value_counts().plot(kind='pie', labels = ['Not Leave','Leave'],autopct='%1.1f%%', textprops = {"fontsize":8}) |
|
ax[1].set_ylabel("% of Employee", fontsize= 12) |
|
st.pyplot(fig) |
|
|
|
|
|
st.subheader('**EDA Feature Education**') |
|
st.write('Dari visualisasi dibawah dapat disimpulkan bahwa :') |
|
st.markdown('- *Education* karyawan terbanyak adalah pada level *bachelors* (3.601 karyawan/77.4%)') |
|
st.markdown('- Karyawan yang paling banyak *resign* adalah karyawan dengan level edukasi *bachelors* (1.129 karyawan). Kemungkinan banyak pada level ini karena, karyawan paling banyak pada level edukasi tersebut ') |
|
st.markdown('- Akan tetapi jika dilihat dari persentase *resign* pada setiap kelas, maka persentase *resign* pada level edukasi *masters* lebih tinggi dari pada level edukasi lainnya (49%)') |
|
|
|
|
|
fig, ax =plt.subplots(1,2,figsize=(8,4)) |
|
sns.countplot(x='Education', data=df_eda, palette="winter", ax=ax[0]) |
|
ax[0].set_xlabel("Education", fontsize= 12) |
|
ax[0].set_ylabel("# of Employee", fontsize= 12) |
|
fig.suptitle('Distribusi Education', fontsize=18, fontweight='bold') |
|
ax[0].set_ylim(0,4000) |
|
for p in ax[0].patches: |
|
ax[0].annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+70), ha='center', va='center',fontsize = 8) |
|
df_eda['Education'].value_counts().plot(kind='pie',autopct='%1.1f%%', textprops = {"fontsize":8}) |
|
ax[1].set_ylabel("% of Employee", fontsize= 12) |
|
st.pyplot(fig) |
|
|
|
|
|
col1, col2 = st.columns(2) |
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.countplot(data = df_eda, x = 'Education', hue="LeaveOrNot", palette = 'winter') |
|
plt.xlabel("Education", fontsize= 12) |
|
plt.ylabel("# of Employee", fontsize= 12) |
|
plt.title('Education vs LeaveOrNot', fontsize=18, fontweight='bold') |
|
plt.legend(fontsize=10,title='LeaveOrNot', loc='upper right', labels=['Not Leave', 'Leave']) |
|
for p in ax.patches: |
|
ax.annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+45), ha='center', va='center',fontsize = 11) |
|
plt.ylim(0,3000) |
|
col1.pyplot(fig) |
|
|
|
|
|
|
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.barplot(x = "Education", y = "LeaveOrNot", data = df_eda, palette = 'winter', errorbar= None) |
|
plt.ylabel("% Leave", fontsize= 14) |
|
plt.xlabel("Education", fontsize= 14) |
|
plt.ylim(0,0.7) |
|
plt.title('% Leave vs Education', fontsize=18, fontweight='bold') |
|
for p in ax.patches: |
|
ax.annotate("%.2f" %(p.get_height()), (p.get_x()+0.33, p.get_height()+0.01),fontsize=13) |
|
col2.pyplot(fig) |
|
|
|
|
|
st.subheader('**EDA Feature City**') |
|
st.write('Dari visualisasi dibawah dapat disimpulkan bahwa :') |
|
st.markdown('- Karyawan banyak yang bekerja pada kota Bangalore (2.228 karyawan/47.9%)') |
|
st.markdown('- Karyawan yang paling banyak *resign* adalah karyawan yang bekerja di kota Pune (639 karyawan)') |
|
st.markdown('- Jika dilihat dari persentase *resign* pada setiap kelas, maka persentase *resign* pada karyawan yang bekerja di kota Pune lebih tinggi dari pada karyawan yang bekerja di kota lainnya (50%)') |
|
|
|
|
|
fig, ax =plt.subplots(1,2,figsize=(8,4)) |
|
sns.countplot(x='City', data=df_eda, palette="winter", ax=ax[0]) |
|
ax[0].set_xlabel("City", fontsize= 12) |
|
ax[0].set_ylabel("# of Employee", fontsize= 12) |
|
fig.suptitle('Distribusi City', fontsize=18, fontweight='bold') |
|
ax[0].set_ylim(0,2500) |
|
for p in ax[0].patches: |
|
ax[0].annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+50), ha='center', va='center',fontsize = 8) |
|
df_eda['City'].value_counts().plot(kind='pie',autopct='%1.1f%%', textprops = {"fontsize":8}) |
|
ax[1].set_ylabel("% of Employee", fontsize= 12) |
|
st.pyplot(fig) |
|
|
|
|
|
col1, col2 = st.columns(2) |
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.countplot(data = df_eda, x = 'City', hue="LeaveOrNot", palette = 'winter') |
|
plt.xlabel("City", fontsize= 12) |
|
plt.ylabel("# of Employee", fontsize= 12) |
|
plt.title('City vs LeaveOrNot', fontsize=18, fontweight='bold') |
|
plt.legend(fontsize=10,title='LeaveOrNot', loc='upper right', labels=['Not Leave', 'Leave']) |
|
for p in ax.patches: |
|
ax.annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+35), ha='center', va='center',fontsize = 11) |
|
plt.ylim(0,2000) |
|
col1.pyplot(fig) |
|
|
|
|
|
|
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.barplot(x = "City", y = "LeaveOrNot", data = df_eda, palette = 'winter', errorbar= None) |
|
plt.ylabel("% Leave", fontsize= 14) |
|
plt.xlabel("City", fontsize= 14) |
|
plt.ylim(0,0.7) |
|
plt.title('% Leave vs City', fontsize=18, fontweight='bold') |
|
for p in ax.patches: |
|
ax.annotate("%.2f" %(p.get_height()), (p.get_x()+0.33, p.get_height()+0.01),fontsize=13) |
|
col2.pyplot(fig) |
|
|
|
|
|
st.subheader('**EDA Feature Gender**') |
|
st.write('Dari visualisasi dibawah dapat disimpulkan bahwa :') |
|
st.markdown('- Karyawan yang bekerja paling banyak memiliki *gender* pria (2.778 karyawan/59.7%)') |
|
st.markdown('- Karyawan yang paling banyak *resign* adalah karyawan dengan *gender* wanita (884 karyawan)') |
|
st.markdown('- Jika dilihat dari persentase *resign* pada setiap kelas, maka persentase *resign* pada *gender* wanita lebih banyak dari pada *gender* pria (47%)') |
|
|
|
|
|
fig, ax =plt.subplots(1,2,figsize=(8,4)) |
|
sns.countplot(x='Gender', data=df_eda, palette="winter", ax=ax[0]) |
|
ax[0].set_xlabel("Gender", fontsize= 12) |
|
ax[0].set_ylabel("# of Employee", fontsize= 12) |
|
fig.suptitle('Distribusi Gender', fontsize=18, fontweight='bold') |
|
ax[0].set_ylim(0,3000) |
|
for p in ax[0].patches: |
|
ax[0].annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+55), ha='center', va='center',fontsize = 8) |
|
|
|
df_eda['Gender'].value_counts().plot(kind='pie',autopct='%1.1f%%', textprops = {"fontsize":8}) |
|
ax[1].set_ylabel("% of Employee", fontsize= 12) |
|
st.pyplot(fig) |
|
|
|
|
|
col1, col2 = st.columns(2) |
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.countplot(data = df_eda, x = 'Gender', hue="LeaveOrNot", palette = 'winter') |
|
plt.xlabel("Gender", fontsize= 12) |
|
plt.ylabel("# of Employee", fontsize= 12) |
|
plt.title('Gender vs LeaveOrNot', fontsize=18, fontweight='bold') |
|
plt.legend(fontsize=10,title='LeaveOrNot', loc='upper right', labels=['Not Leave', 'Leave']) |
|
for p in ax.patches: |
|
ax.annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+45), ha='center', va='center',fontsize = 11) |
|
plt.ylim(0,2300) |
|
col1.pyplot(fig) |
|
|
|
|
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.barplot(x = "Gender", y = "LeaveOrNot", data = df_eda, palette = 'winter', errorbar= None) |
|
plt.ylabel("% Leave", fontsize= 14) |
|
plt.xlabel("Gender", fontsize= 14) |
|
plt.ylim(0,0.6) |
|
plt.title('% Leave vs Gender', fontsize=18, fontweight='bold') |
|
for p in ax.patches: |
|
ax.annotate("%.2f" %(p.get_height()), (p.get_x()+0.33, p.get_height()+0.01),fontsize=13) |
|
col2.pyplot(fig) |
|
|
|
|
|
st.subheader('**EDA Feature EverBenched**') |
|
st.write('Dari visualisasi dibawha dapat disimpulkan bahwa :') |
|
st.markdown('- Karyawan yang tidak pernah memegang *project* > 1 bulan lebih banyak dari yang pernah memegang *project* (4.175 karyawan/89.7%)') |
|
st.markdown('- Karyawan yang paling banyak *resign* adalah karyawan yang tidak pernah memegang *project* > 1 bulan (1.383 karyawan). Kemungkinan banyak pada kelas ini karena, karyawan paling banyak pada kelas tersebut') |
|
st.markdown('- Akan tetapi jika dilihat dari persentase *resign* pada setiap kelas, maka persentase *resign* pada karyawan yang pernah memegang *project* > 1 bulan lebih tinggi dari pada yang tidak pernah memegang *project* > 1 bulan (45%)') |
|
|
|
|
|
fig, ax =plt.subplots(1,2,figsize=(8,4)) |
|
sns.countplot(x='EverBenched', data=df_eda, palette="winter", ax=ax[0]) |
|
ax[0].set_xlabel("EverBenched", fontsize= 12) |
|
ax[0].set_ylabel("# of Employee", fontsize= 12) |
|
fig.suptitle('Distribusi EverBenched', fontsize=18, fontweight='bold') |
|
ax[0].set_ylim(0,4600) |
|
for p in ax[0].patches: |
|
ax[0].annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+70), ha='center', va='center',fontsize = 8) |
|
|
|
df_eda['EverBenched'].value_counts().plot(kind='pie',autopct='%1.1f%%', textprops = {"fontsize":12}) |
|
ax[1].set_ylabel("% of Employee", fontsize= 12) |
|
st.pyplot(fig) |
|
|
|
|
|
col1, col2 = st.columns(2) |
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.countplot(data = df_eda, x = 'EverBenched', hue="LeaveOrNot", palette = 'winter') |
|
plt.xlabel("EverBenched", fontsize= 12) |
|
plt.ylabel("# of Employee", fontsize= 12) |
|
plt.title('EverBenched vs LeaveOrNot', fontsize=18, fontweight='bold') |
|
plt.legend(fontsize=10,title='LeaveOrNot', loc='upper right', labels=['Not Leave', 'Leave']) |
|
for p in ax.patches: |
|
ax.annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+45), ha='center', va='center',fontsize = 11) |
|
plt.ylim(0,3100) |
|
col1.pyplot(fig) |
|
|
|
|
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.barplot(x = "EverBenched", y = "LeaveOrNot", data = df_eda, palette = 'winter', errorbar= None) |
|
plt.ylabel("% Leave", fontsize= 14) |
|
plt.xlabel("EverBenched", fontsize= 14) |
|
plt.ylim(0,0.7) |
|
plt.title('% Leave vs EverBenched', fontsize=18, fontweight='bold') |
|
for p in ax.patches: |
|
ax.annotate("%.2f" %(p.get_height()), (p.get_x()+0.33, p.get_height()+0.01),fontsize=13) |
|
col2.pyplot(fig) |
|
|
|
|
|
st.subheader('**EDA Feature PaymentTier**') |
|
st.write('Dari visualisasi dibawha dapat disimpulkan bahwa :') |
|
st.markdown('- Karyawan banyak yang memiliki gaji dengan *tier* 3 (3.492 karyawan/75%)') |
|
st.markdown('- Karyawan yang paling banyak *resign* adalah karyawan dengan gaji *tier* 3 (961 karyawan). Kemungkinan banyak pada kelas ini karena, karyawan paling banyak pada *tier* gaji tersebut') |
|
st.markdown('- Akan tetapi jika dilihat dari persentase *resign* pada setiap kelas, maka persentase *resign* pada kelas gaji *tier* 2 lebih tinggi dari pada *tier* lainnya (60%)') |
|
|
|
|
|
fig, ax =plt.subplots(1,2,figsize=(8,4)) |
|
sns.countplot(x='PaymentTier', data=df_eda, palette="winter", ax=ax[0]) |
|
ax[0].set_xlabel("PaymentTier", fontsize= 12) |
|
ax[0].set_ylabel("# of Employee", fontsize= 12) |
|
fig.suptitle('Distribusi PaymentTier', fontsize=18, fontweight='bold') |
|
ax[0].set_ylim(0,4000) |
|
for p in ax[0].patches: |
|
ax[0].annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+55), ha='center', va='center',fontsize = 8) |
|
|
|
df_eda['PaymentTier'].value_counts().plot(kind='pie',autopct='%1.1f%%', textprops = {"fontsize":12}) |
|
ax[1].set_ylabel("% of Employee", fontsize= 12) |
|
st.pyplot(fig) |
|
|
|
|
|
col1, col2 = st.columns(2) |
|
fig = plt.figure(figsize=(12,6)) |
|
ax = sns.countplot(data = df_eda, x = 'PaymentTier', hue="LeaveOrNot", palette = 'winter') |
|
plt.xlabel("PaymentTier", fontsize= 12) |
|
plt.ylabel("# of Employee", fontsize= 12) |
|
plt.title('PaymentTier vs LeaveOrNot', fontsize=18, fontweight='bold') |
|
plt.legend(fontsize=10,title='LeaveOrNot', loc='upper right', labels=['Not Leave', 'Leave']) |
|
for p in ax.patches: |
|
ax.annotate("%.0f"%(p.get_height()), (p.get_x() + p.get_width() / 2, |
|
p.get_height()+45), ha='center', va='center',fontsize = 11) |
|
plt.ylim(0,3000) |
|
col1.pyplot(fig) |
|
|
|
|
|
plt.figure(figsize=(12,6)) |
|
ax = sns.barplot(x = "PaymentTier", y = "LeaveOrNot", data = df_eda, palette = 'winter', errorbar= None) |
|
plt.ylabel("% Leave", fontsize= 14) |
|
plt.xlabel("PaymentTier", fontsize= 14) |
|
plt.ylim(0,0.7) |
|
plt.title('% Leave vs PaymentTier', fontsize=18, fontweight='bold') |
|
for p in ax.patches: |
|
ax.annotate("%.2f" %(p.get_height()), (p.get_x()+0.33, p.get_height()+0.01),fontsize=13) |
|
col2.pyplot(fig) |
|
|
|
if __name__ == '__main__': |
|
run() |
|
|
|
|