import streamlit as st import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import plotly.express as px from PIL import Image st.set_page_config( page_title = 'Heart Failure - EDA', layout = 'wide', initial_sidebar_state='expanded' ) def run(): # Membuat Title st.title('Graded Challenge 3 Phase 1') # Membuat Sub Header st.subheader('EDA untuk Analisa Dataset Heart Failure') # Menambahkan Gambar image = Image.open('SystolicHeartFailureHero.jpg') st.image(image, caption='Heart Photo') # Menambahkan Deskripsi st.write('Page ini dibuat oleh *William*') # Membuat Garis Lurus st.markdown('---') # Magic Syntax ''' Pada page kali ini, penulis akan melakukan eksplorasi sederhana. Dataset yang digunakan adalah dataset Heart Failure. Dataset ini berasal dari BigQuery Hacktiv8. ''' # Show DataFrame data = pd.read_csv('h8dsft_P1G3_William.csv') st.dataframe(data) st.write('#### Plot Banyaknya pasien yang hidup / meninggal ') fig = plt.figure(figsize=(15, 5)) sns.countplot(x='DEATH_EVENT',data=data) st.pyplot(fig) ''' berdasarkan data, pasien penyakit jantung memiliki kemungkinan untuk selamat lebih besar daripada mengalami kematian ''' # Membuat Barplot st.write('#### Plot death event berdasarkan age') fig = plt.figure(figsize=(15, 5)) sns.histplot(data[data.DEATH_EVENT == 0].age,kde=False,color="blue", label="Age for Death Event 0") sns.histplot(data[data.DEATH_EVENT == 1].age,kde=False,color = "red", label = "Age for Death Event 1") plt.legend() st.pyplot(fig) ''' dapat dilihat bahwa lebih besar kemungkinan pasien yang meninggal pada umur diatas 80an dibandingkan dengan yang umurnya lebih muda ditnjukkan dengan plot berwarna merah yang lebih tinggi pada umur 80 tahun keatas ''' # Membuat Histogram Berdasarkan Input User st.write('#### Histogram berdasarkan input user') pilihan = st.selectbox('Pilih column : ', ('age', 'anaemia', 'creatinine_phosphokinase', 'diabetes','ejection_fraction','high_blood_pressure','platelets','serum_creatinine','serum_creatinine','sex','smoking','time')) fig = plt.figure(figsize=(15, 5)) sns.histplot(data[pilihan], bins=30, kde=True) st.pyplot(fig) if __name__ == '__main__': run()