grcvlrn/Deployment
0
1import streamlit as st2import matplotlib.pyplot as plt3import seaborn as sns4import pandas as pd5 6# Define function to plot sentiment distribution7def payment_counts_distribution(df):8 payment_counts = df['default_payment_next_month'].value_counts()9 plt.figure(figsize=(8, 6))10 plt.pie(payment_counts, labels=payment_counts.index, autopct='%.0f%%', startangle=140)11 plt.title('Payment Distribution')12 plt.show()13 14def limit_balance_distribution(df):15 sns.histplot(df['limit_balance'], bins=50, kde=True)16 plt.title('Balance Distribution')17 plt.xlabel('Balance')18 plt.ylabel('Frequency')19 plt.show()20 21def sex_distribution(df):22 sex_counts = df['sex'].value_counts()23 plt.figure(figsize=(8, 6))24 plt.pie(sex_counts, labels=sex_counts.index, autopct='%.0f%%', startangle=140)25 plt.title('Gender Distribution')26 plt.show()27 28def education_level_distribution(df):29 edu_counts = df['education_level'].value_counts()30 plt.figure(figsize=(8, 6))31 plt.pie(edu_counts, labels=edu_counts.index, autopct='%.0f%%', startangle=140)32 plt.title('Education Level Distribution')33 plt.show()34 35def marital_status_distribution(df):36 status_counts = df['marital_status'].value_counts()37 plt.figure(figsize=(8, 6))38 plt.pie(status_counts, labels=status_counts.index, autopct='%.0f%%', startangle=140)39 plt.title('Marital Status Distribution')40 plt.show()41 42def age_distribution(df):43 sns.histplot(df['age'], bins=25, kde=True)44 plt.title('Age Distribution')45 plt.xlabel('Age')46 plt.ylabel('Frequency')47 plt.show()48 49 50st.title("Sentiment Analysis Visualization")51 52uploaded_file = st.file_uploader("P1G5_Set_1_gracia_valerine", type="csv")53 54if uploaded_file:55 df = pd.read_csv(uploaded_file)56 st.write("Data Preview:")57 st.write(df.head())58 59 visualizations = st.multiselect(60 "Select visualizations to display",61 ["Payment Counts Distribution", "Limit Balance Distribution", "Gender Distribution",62 "Education Level Distribution", "Marital Status Distribution", "Age Distribution"]63 )64 65 if "Payment Counts Distribution" in visualizations:66 st.subheader("Payment Counts Distribution")67 payment_counts_distribution(df)68 69 if "Limit Balance Distribution" in visualizations:70 st.subheader("Limit Balance Distribution")71 limit_balance_distribution(df)72 73 if "Gender Distribution" in visualizations:74 st.subheader("Gender Distribution")75 sex_distribution(df)76 77 if "Education Level Distribution" in visualizations:78 st.subheader("Education Level Distribution")79 education_level_distribution(df)80 81 if "Marital Status Distribution" in visualizations:82 st.subheader("Marital Status Distribution")83 marital_status_distribution(df)84 85 if "Age Distribution" in visualizations:86 st.subheader("Age Distribution")87 age_distribution(df)