didev007's picture
Upload 8 files
693c50e
import streamlit as st
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.ticker import MultipleLocator
def run():
st.title("Flight Passenger Satisfaction Prediction")
st.subheader("Analysis Data for Flight Passenger")
st.write("This page made by Dicky Gabriel")
st.markdown("---")
df = pd.read_csv("Fligh_satification.csv")
st.dataframe(df)
df.columns = df.columns.str.lower()
st.write("## Passenger Satisfaction")
sns.set_style("whitegrid")
fig_pie, ax_pie = plt.subplots(figsize=(6, 6))
ax_pie.pie(df.satisfaction.value_counts(), labels=["Neutral or dissatisfied", "Satisfied"], autopct='%1.1f%%')
ax_pie.set_title('Perbandingan kolom satisfied dan neutral or disastified')
st.pyplot(fig_pie)
st.write("## Age Histogram")
fig_hist, ax_hist = plt.subplots(figsize=(20, 20))
ax_hist.minorticks_on()
ax_hist.xaxis.set_minor_locator(MultipleLocator(5))
ax_hist.yaxis.set_minor_locator(MultipleLocator(100))
ax_hist.set_title('Ages Histogram', size=20, fontweight='bold', y=1.04)
sns.histplot(x='age', data=df, edgecolor='black', kde=True, line_kws={'lw': 1, 'linestyle': '--'}, ax=ax_hist)
ax_hist.set_xlabel('Age', size=15)
ax_hist.set_ylabel('Count', size=15)
st.pyplot(fig_hist)
st.write("## Scatterplot of age and satisfaction")
fig_scatter, ax_scatter = plt.subplots(figsize=(20, 20))
ax_scatter.minorticks_on()
ax_scatter.xaxis.set_minor_locator(MultipleLocator(5))
ax_scatter.yaxis.set_minor_locator(MultipleLocator(100))
ax_scatter.set_title('Ages Histogram with Satisfaction', size=20, fontweight='bold', y=1.04)
sns.histplot(x='age', data=df, edgecolor='black', hue="satisfaction", kde=True,
line_kws={'lw': 1, 'linestyle': '--'}, ax=ax_scatter)
ax_scatter.set_xlabel('Age', size=15)
ax_scatter.set_ylabel('Count', size=15)
st.pyplot(fig_scatter)
st.write("## plane type")
fig_plane_type = plt.figure(figsize=(10, 5), dpi=200)
ax_plane_type = sns.countplot(x='type of travel', hue='satisfaction', data=df)
ax_plane_type.set_title('type of travel', size=15)
ax_plane_type.legend(fontsize='10')
plt.xlabel('')
plt.ylabel('Count', size=15)
st.write("## plane type")
fig_plane_type = plt.figure(figsize=(10, 5), dpi=200)
ax_plane_type = sns.countplot(x='type of travel', hue='satisfaction', data=df)
ax_plane_type.set_title('type of travel', size=15)
ax_plane_type.legend(fontsize='10')
plt.xlabel('')
plt.ylabel('Count', size=15)
for p in ax_plane_type.patches:
ax_plane_type.annotate(f'{p.get_height()}', (p.get_x() + p.get_width() / 2., p.get_height()),
ha='center', va='center', fontsize=8, color='black', xytext=(0, 5),
textcoords='offset points')
st.pyplot(fig_plane_type)
st.write("## Class type")
fig_class_type = plt.figure(figsize=(10,5),dpi=200)
ax=sns.countplot(x='class',hue='satisfaction',data=df)
ax.set_title('class',size=15)
ax.legend(fontsize='10')
plt.xlabel('')
plt.ylabel('Count',size=15)
for p in ax.patches:
ax.annotate(f'{p.get_height()}', (p.get_x() + p.get_width() / 2., p.get_height()),
ha='center', va='center', fontsize=8, color='black', xytext=(0, 5),
textcoords='offset points')
plt.show()
st.pyplot(fig_class_type)
if __name__ == "__main__":
run()