didev007's picture
Upload 8 files
693c50e
raw
history blame
3.55 kB
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()