import streamlit as st import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from PIL import Image def run(): st.title('Welcome to Explaration Data Analysis') df= pd.read_csv('P1G1_Kenneth Vincentius.csv') st.table(df.head(5)) st.title('Presentasi Persentase Default Payment') # Membuat barplot menampilkan persentase orang yang bisa membayar atau tidak count_data = df['default_payment_next_month'].value_counts() total_data = len(df) percentage_data = (count_data / total_data) * 100 # Plot bar fig_1 = plt.figure() sns.barplot(x=percentage_data.index, y=percentage_data.values) plt.title('Presentasi Persentase Def Payment') plt.xlabel('def_payment') plt.ylabel('Persentase (%)') for i in range(len(percentage_data)): plt.text(i, percentage_data[i], f'{percentage_data[i]:.2f}%', ha='center', va='bottom') # Tampilkan plot menggunakan Streamlit st.pyplot(fig_1) with st.expander('Explanation'): st.caption('Hasil : Kita bisa melihat bahwa 78.58 bisa bisa membayar dan 21.42% tidak bisa membayar') st.title("Persentase dari Gender") # Membuat barplot menampilkan persentase defaulting payment berdasarkan jenis kelamin def_count = (df.sex.value_counts(normalize=True) * 100) fig_2 = plt.figure(figsize=(6, 6)) def_count.plot.bar() plt.xticks(fontsize=12, rotation=0) plt.yticks(fontsize=12) plt.title("Persentase dari Gender", fontsize=15) # Menampilkan persentase di atas batang for x, y in zip([0, 1], def_count): plt.text(x, y, '{:.2f}%'.format(y), fontsize=12) # Memformat y menjadi dua angka desimal # Tampilkan plot menggunakan Streamlit st.pyplot(fig_2) with st.expander('Explanation'): st.caption('Bisa dilihat bahwa terdapat 39.24% di laki-laki=1 dan 60.76% didominasi oleh perempuan=2') # Judul aplikasi st.title('Distribusi Usia') # Membuat plot histogram dari distribusi usia fig_3, ax = plt.subplots(1, 2, figsize=(12, 6)) # Plot histogram sns.histplot(df['age'], kde=True, ax=ax[1]) ax[1].set_title('Distribution of Age') ax[1].set_xlabel('Age') ax[1].set_ylabel('Frequency') # Tampilkan plot menggunakan Streamlit st.pyplot(fig_3) with st.expander('Explanation'): st.caption('Bisa dilihat bahwa persebaran umur dari umur 20 sampai 50')