Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import numpy as np | |
import yfinance as yf | |
import altair as alt | |
import plotly.figure_factory as ff | |
import pydeck as pdk | |
from vega_datasets import data as vds | |
import plotly.express as px | |
import plotly.graph_objects as go | |
from plotly.subplots import make_subplots | |
from streamlit_image_comparison import image_comparison | |
def on_input_change(): | |
user_input = st.session_state.user_input | |
st.session_state.past.append(user_input) | |
st.session_state.generated.append( | |
{"data": "The messages from Bot\nWith new line", "type": "normal"} | |
) | |
def on_btn_click(): | |
del st.session_state.past[:] | |
del st.session_state.generated[:] | |
def main(): | |
st.title(" Corona Dashboard") | |
( | |
col1, | |
col2, | |
) = st.columns(2) | |
with col1: | |
option = st.selectbox(" San Francisco", [" San Francisco"]) | |
with col2: | |
option = st.selectbox(" Monthly / Weekly", [" Monthly ", " Weekly"]) | |
if st.checkbox(" Show raw data"): | |
st.write("Checkbox checked!") | |
if st.button(" Visualize"): | |
st.write("Button clicked!") | |
st.subheader(" Global Data") | |
df = pd.read_csv( | |
"https://raw.githubusercontent.com/plotly/datasets/master/volcano_db.csv", | |
encoding="iso-8859-1", | |
) | |
freq = df | |
freq = freq.Country.value_counts().reset_index().rename(columns={"count": "x"}) | |
df_v = pd.read_csv( | |
"https://raw.githubusercontent.com/plotly/datasets/master/volcano.csv" | |
) | |
fig = make_subplots( | |
rows=2, | |
cols=2, | |
column_widths=[0.6, 0.4], | |
row_heights=[0.4, 0.6], | |
specs=[ | |
[{"type": "scattergeo", "rowspan": 2}, {"type": "bar"}], | |
[None, {"type": "surface"}], | |
], | |
) | |
fig.add_trace( | |
go.Scattergeo( | |
lat=df["Latitude"], | |
lon=df["Longitude"], | |
mode="markers", | |
hoverinfo="text", | |
showlegend=False, | |
marker=dict(color="crimson", size=4, opacity=0.8), | |
), | |
row=1, | |
col=1, | |
) | |
fig.add_trace( | |
go.Bar( | |
x=freq["x"][0:10], | |
y=freq["Country"][0:10], | |
marker=dict(color="crimson"), | |
showlegend=False, | |
), | |
row=1, | |
col=2, | |
) | |
fig.add_trace(go.Surface(z=df_v.values.tolist(), showscale=False), row=2, col=2) | |
fig.update_geos( | |
projection_type="orthographic", | |
landcolor="white", | |
oceancolor="MidnightBlue", | |
showocean=True, | |
lakecolor="LightBlue", | |
) | |
fig.update_xaxes(tickangle=45) | |
fig.update_layout( | |
template="plotly_dark", | |
margin=dict(r=10, t=25, b=40, l=60), | |
annotations=[ | |
dict( | |
text="Source: NOAA", | |
showarrow=False, | |
xref="paper", | |
yref="paper", | |
x=0, | |
y=0, | |
) | |
], | |
) | |
st.plotly_chart(fig) | |
( | |
col1, | |
col2, | |
) = st.columns(2) | |
with col1: | |
st.table( | |
{ | |
"Country": ["USA", "Canada", "UK", "Australia"], | |
"Population (millions)": [331, 38, 66, 25], | |
"GDP (trillion USD)": [22.675, 1.843, 2.855, 1.488], | |
} | |
) | |
with col2: | |
df = px.data.gapminder().query("year == 2007").query("continent == 'Americas'") | |
fig = px.pie( | |
df, | |
values="pop", | |
names="country", | |
title="Population of American continent", | |
hover_data=["lifeExp"], | |
labels={"lifeExp": "life expectancy"}, | |
) | |
fig.update_traces(textposition="inside", textinfo="percent+label") | |
st.plotly_chart(fig) | |
if __name__ == "__main__": | |
main() | |