attempt-two / pages /Filter_Charts.py
KingZack's picture
adding app files
6f00d18
import streamlit as st
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
############### PAGE SETUP ########################
###################################################
st.set_page_config(layout="wide")
st.header("Smiple Charts")
############ HELPER FUNCTIONS #####################
###################################################
@st.cache_data
def load_data():
df = pd.read_csv('data/ny-vs-sf-houses.csv')
return df
def display_data(n=5):
#Randomize the data
display_df = df.sample(n=n)
st.dataframe(display_df)
def plot_streamlit_scatter_chart():
st.scatter_chart(df, x='price', y='elevation', color='city', size='sqft')
def plot_static_seaborn_chart():
fig, ax = plt.subplots(figsize = (50,30))
_ = sns.histplot(df, x='elevation', hue='city', multiple='stack')
st.pyplot(fig)
################## PAGE LAYOUT ###################
###################################################
df = load_data()
col1, col2 = st.columns([1, 3])
## COL1 WILL HOLD OUR FILTERS
with col1:
## FILTERS
selected_cities = st.multiselect(
'Select which states to compare.',
['SF', 'NY'],
default=['SF', 'NY'] )
# Use selected cities to filter the dataframe
df = df[df['city'].isin(selected_cities)]
# Create a price filter
price_filter = st.slider(
"Filter for only prices above",
min_value = df.price.min(),
max_value = df.price.max(),
step=100000
)
# filter for only prices greater than price_filter value.
df = df[df['price'] >= price_filter]
## COL2 WILL HOLD OUR CHARTS
with col2:
display_data()
plot_streamlit_scatter_chart()
plot_static_seaborn_chart()