Spaces:
Runtime error
Runtime error
gstdl
commited on
Commit
·
929bdc6
1
Parent(s):
fc10970
add lineplot
Browse files
app.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
import streamlit as st
|
| 2 |
import pandas as pd
|
| 3 |
import plotly.express as px
|
|
|
|
| 4 |
from gapminder import gapminder
|
| 5 |
|
| 6 |
#######
|
|
@@ -45,6 +46,46 @@ def scatter_plot(df, x, y, hue):
|
|
| 45 |
return fig
|
| 46 |
|
| 47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
#######
|
| 49 |
# Streamlit app code
|
| 50 |
#######
|
|
@@ -65,8 +106,15 @@ with col2:
|
|
| 65 |
y = st.selectbox("Select y Axis", metrics, key="boxplot_y")
|
| 66 |
st.plotly_chart(box_plot(df, x, y))
|
| 67 |
|
| 68 |
-
##
|
| 69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
|
| 71 |
|
| 72 |
st.markdown('## Gapminder Scatterplot')
|
|
@@ -77,4 +125,4 @@ with col2:
|
|
| 77 |
y = st.selectbox("Select y Axis", metrics, key="scatterplot_y")
|
| 78 |
with col3:
|
| 79 |
hue = st.selectbox("Select hue", ["country", "continent"], key="scatterplot_hue")
|
| 80 |
-
st.plotly_chart(scatter_plot(df, x, y, hue))
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
import pandas as pd
|
| 3 |
import plotly.express as px
|
| 4 |
+
import plotly.graph_objects as go
|
| 5 |
from gapminder import gapminder
|
| 6 |
|
| 7 |
#######
|
|
|
|
| 46 |
return fig
|
| 47 |
|
| 48 |
|
| 49 |
+
def line_plot(df, y_axis, label, highlighted):
|
| 50 |
+
fig = go.Figure()
|
| 51 |
+
if label=="continent":
|
| 52 |
+
df = df.groupby(["continent", "year"]).agg({
|
| 53 |
+
"lifeExp": "mean",
|
| 54 |
+
"pop": "sum",
|
| 55 |
+
"gdpPercap": "mean",
|
| 56 |
+
}).reset_index()
|
| 57 |
+
data = df[df[label]==highlighted]
|
| 58 |
+
x = data["year"]
|
| 59 |
+
y = data[y_axis]
|
| 60 |
+
fig.add_trace(go.Scatter(x=x, y=y,
|
| 61 |
+
hovertext=[
|
| 62 |
+
f"{label}: {highlighted}<br>year: {year}<br>{y_axis}: {value}"
|
| 63 |
+
for year, value in zip(x,y)
|
| 64 |
+
],
|
| 65 |
+
hoverinfo="text",
|
| 66 |
+
mode='lines',
|
| 67 |
+
line = dict(color='orange', width=10),
|
| 68 |
+
# name=highlighted
|
| 69 |
+
))
|
| 70 |
+
for i in df[label].unique():
|
| 71 |
+
if i == highlighted:
|
| 72 |
+
continue
|
| 73 |
+
data = df[df[label]==i]
|
| 74 |
+
x = data["year"]
|
| 75 |
+
y = data[y_axis]
|
| 76 |
+
fig.add_trace(go.Scatter(x=x, y=y,
|
| 77 |
+
hovertext=[
|
| 78 |
+
f"{label}: {i}<br>year: {year}<br>{y_axis}: {value}"
|
| 79 |
+
for year, value in zip(x,y)
|
| 80 |
+
],
|
| 81 |
+
hoverinfo="text",
|
| 82 |
+
mode='lines',
|
| 83 |
+
line = dict(color='gray', width=1),
|
| 84 |
+
# name=i
|
| 85 |
+
))
|
| 86 |
+
fig.update_layout(showlegend=False)
|
| 87 |
+
return fig
|
| 88 |
+
|
| 89 |
#######
|
| 90 |
# Streamlit app code
|
| 91 |
#######
|
|
|
|
| 106 |
y = st.selectbox("Select y Axis", metrics, key="boxplot_y")
|
| 107 |
st.plotly_chart(box_plot(df, x, y))
|
| 108 |
|
| 109 |
+
st.markdown('## Gapminder Lineplot')
|
| 110 |
+
col1, col2, col3 = st.columns(3)
|
| 111 |
+
with col1:
|
| 112 |
+
label = st.selectbox("Select label", ["country", "continent"], key="lineplot_label")
|
| 113 |
+
with col2:
|
| 114 |
+
highlighted = st.selectbox("Select value to hightlight", df[label].unique(), key="lineplot_highlighting")
|
| 115 |
+
with col3:
|
| 116 |
+
y = st.selectbox("Select hue", metrics, key="lineplot_y")
|
| 117 |
+
st.plotly_chart(line_plot(df, y, label, highlighted))
|
| 118 |
|
| 119 |
|
| 120 |
st.markdown('## Gapminder Scatterplot')
|
|
|
|
| 125 |
y = st.selectbox("Select y Axis", metrics, key="scatterplot_y")
|
| 126 |
with col3:
|
| 127 |
hue = st.selectbox("Select hue", ["country", "continent"], key="scatterplot_hue")
|
| 128 |
+
st.plotly_chart(scatter_plot(df, x, y, hue))
|