jaleesahmed's picture
app
5a5f8e0
raw
history blame
2.31 kB
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.preprocessing import LabelEncoder
import seaborn as sns
import gradio as gr
plt.switch_backend('Agg')
pd.options.display.max_columns = 25
pd.options.display.max_rows = 300
def outbreak(plot_type):
df = pd.read_csv('emp_experience_data.csv')
data_encoded = df.copy(deep=True)
categorical_column = ['Attrition', 'Gender', 'BusinessTravel', 'Education', 'EmployeeExperience', 'EmployeeFeedbackSentiments', 'Designation',
'SalarySatisfaction', 'HealthBenefitsSatisfaction', 'UHGDiscountProgramUsage', 'HealthConscious', 'CareerPathSatisfaction', 'Region']
label_encoding = LabelEncoder()
for col in categorical_column:
data_encoded[col] = label_encoding.fit_transform(data_encoded[col])
if plot_type == "Find Data Correlation":
fig = plt.figure()
data_correlation = data_encoded.corr()
plt.rcParams["figure.figsize"] = [10,10]
sns.heatmap(data_correlation,xticklabels=data_correlation.columns,yticklabels=data_correlation.columns)
return fig
if plot_type == "Age Attrition":
fig = plt.figure()
positive_attrition_df = data_encoded.loc[data_encoded['Attrition'] == "Yes"]
plt.hist(positive_attrition_df['Age'], bins=np.arange(0,80,10), alpha=0.8, rwidth=0.9, color='blue')
plt.xlabel("Age")
plt.ylabel("Count")
plt.title("Age vs Attrition")
return fig
if plot_type == "Distance Attrition":
fig = plt.figure()
positive_attrition_df = data_encoded.loc[data_encoded['Attrition'] == "Yes"]
plt.hist(positive_attrition_df['DistanceFromHome'], bins=np.arange(0,80,10), alpha=0.8, rwidth=0.9, color='green')
plt.xlabel("Distance From Home")
plt.ylabel("Count")
plt.title("Distance vs Attrition")
return fig
inputs = [
gr.Dropdown(["Find Data Correlation", "Age Attrition", "Distance Attrition"], label="Data Correlation and Visualization")
]
outputs = gr.Plot()
demo = gr.Interface(
fn = outbreak,
inputs = inputs,
outputs = outputs,
title="Employee-Experience: Data Correlation and Pattern Visualization",
allow_flagging=False
)
if __name__ == "__main__":
demo.launch()