3v324v23's picture
revise plot using plotly express
e55cbec
import streamlit as st
import pandas as pd
import numpy as np
import plotly.express as px
bank_df = pd.read_csv('./csv/BankChurners.csv')
bank_df.drop(columns=["CLIENTNUM",
"Naive_Bayes_Classifier_Attrition_Flag_Card_Category_Contacts_Count_12_mon_Dependent_count_Education_Level_Months_Inactive_12_mon_1",
"Naive_Bayes_Classifier_Attrition_Flag_Card_Category_Contacts_Count_12_mon_Dependent_count_Education_Level_Months_Inactive_12_mon_2"], inplace=True)
num_col = bank_df.select_dtypes(include=np.number).columns.tolist()
cat_col = bank_df.select_dtypes(include=object).columns.tolist()
cat_col.remove("Attrition_Flag")
st.set_page_config(
page_title="Customer Churn Classification",
layout="wide",
initial_sidebar_state="expanded",
)
def distribution():
# distribution plot
st.header("Data Distribution")
attr_plot('Attrition_Flag')
col1, col2 = st.columns(2)
numerik = col1.selectbox(label="Select Features", options=num_col)
hist_plot(numerik, col1)
kategorik = col2.selectbox(label="Select Features", options=cat_col)
count_plot(kategorik, col2)
st.markdown('''
''')
def attr_plot(column):
fig = px.histogram(bank_df, y=column, color="Attrition_Flag", title=f'Distribution of {column}')
fig.update_layout(width=1200)
st.plotly_chart(fig, use_container_width=True)
def hist_plot(column, loc):
fig = px.histogram(bank_df, x=column, color="Attrition_Flag", title=f'Histogram of {column}')
loc.plotly_chart(fig)
def count_plot(column, loc):
fig = px.bar(bank_df, y=column, color="Attrition_Flag", title=f'Count Plot of {column}', orientation='h')
loc.plotly_chart(fig)
if __name__ == "__main__":
distribution()