kennethv1706's picture
Upload 11 files
b752079
raw
history blame contribute delete
No virus
2.42 kB
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')