Spaces:
Sleeping
Sleeping
| import solara | |
| import numpy as np | |
| import seaborn as sns | |
| import plotly.express as px | |
| import plotly.graph_objects as go | |
| from utils import selected_template | |
| def ScatterPlot(): | |
| with solara.Row(justify='space-around') as main: | |
| with solara.Column(gap="10px",align="stretch"): | |
| with solara.Card(): | |
| with solara.Row(): | |
| with solara.Column(): | |
| selection_data, set_selection_data = solara.use_state(None) | |
| click_data, set_click_data = solara.use_state(None) | |
| hover_data, set_hover_data = solara.use_state(None) | |
| unhover_data, set_unhover_data = solara.use_state(None) | |
| deselect_data, set_deselect_data = solara.use_state(None) | |
| solara.Markdown(f"#SCATTER PLOTS") | |
| # Use included Iris data set | |
| df_iris = px.data.iris() | |
| # Create a scatter plot by defining x, y, different color for count of provided | |
| # column, size based on supplied column and additional data to display on hover | |
| fig1= px.scatter(df_iris, x="sepal_width", y="sepal_length", color="species", template=selected_template.value, | |
| size='petal_length', hover_data=['petal_width']) | |
| solara.Markdown(f"###Create a scatter plot by defining x, y, different color for count of provided") | |
| solara.Markdown(""" | |
| ```python | |
| fig1= px.scatter(df_iris, x="sepal_width", y="sepal_length", color="species", | |
| size='petal_length', hover_data=['petal_width']) | |
| ``` | |
| """ | |
| ) | |
| solara.FigurePlotly(fig1, on_selection=set_selection_data, | |
| on_click=set_click_data, on_hover=set_hover_data, | |
| on_unhover=set_unhover_data, on_deselect=set_deselect_data) | |
| with solara.Columns(): | |
| solara.Markdown( | |
| f""" | |
| # Events data | |
| ## selection | |
| ``` | |
| {selection_data} | |
| ``` | |
| ## click | |
| ``` | |
| {click_data} | |
| ``` | |
| ## hover | |
| ``` | |
| {hover_data} | |
| ``` | |
| ## unhover | |
| ``` | |
| {unhover_data} | |
| ``` | |
| ## deselect | |
| ``` | |
| {deselect_data} | |
| ``` | |
| """ | |
| ) | |
| with solara.Column(gap="10px",align="stretch"): | |
| # Create a customized scatter with black marker edges with line width 2, opaque | |
| # and colored based on width. Also show a scale on the right | |
| fig2 = go.Figure() | |
| fig2.add_trace(go.Scatter( | |
| x=df_iris.sepal_width, y=df_iris.sepal_length, | |
| mode='markers', | |
| marker_color=df_iris.sepal_width, | |
| text=df_iris.species, | |
| marker=dict(showscale=True) | |
| )) | |
| fig2.update_traces(marker_line_width=2, marker_size=10) | |
| fig2.update_layout(template= selected_template.value) | |
| solara.Markdown(f"##Create a customized scatter with black marker edges with line width 2, opaque and colored based on width. Also show a scale on the right") | |
| solara.Markdown(""" | |
| ```python | |
| fig2 = go.Figure() | |
| fig2.add_trace(go.Scatter( | |
| x=df_iris.sepal_width, y=df_iris.sepal_length, | |
| mode='markers', | |
| marker_color=df_iris.sepal_width, | |
| text=df_iris.species, | |
| marker=dict(showscale=True) | |
| )) | |
| fig2.update_traces(marker_line_width=2, marker_size=10) | |
| ``` | |
| """ | |
| ) | |
| solara.FigurePlotly(fig2) | |
| # Working with a lot of data use Scattergl | |
| fig3 = go.Figure(data=go.Scattergl( | |
| x = np.random.randn(10000), | |
| y = np.random.randn(10000), | |
| mode='markers', | |
| marker=dict( | |
| color=np.random.randn(10000), | |
| colorscale='Viridis', | |
| line_width=1 | |
| ) | |
| )) | |
| fig3.update_layout(template= selected_template.value) | |
| solara.Markdown(f"#Working with a lot of data use *Scattergl*") | |
| solara.Markdown(""" | |
| ```python | |
| fig3 = go.Figure(data=go.Scattergl( | |
| x = np.random.randn(10000), | |
| y = np.random.randn(10000), | |
| mode='markers', | |
| marker=dict( | |
| color=np.random.randn(10000), | |
| colorscale='Viridis', | |
| line_width=1 | |
| ) | |
| )) | |
| ``` | |
| """ | |
| ) | |
| solara.FigurePlotly(fig3) | |
| # With a scatter matrix we can compare changes when comparing column data | |
| flights = sns.load_dataset("flights") | |
| fig4 = px.scatter_matrix(flights, color='month',template=selected_template.value,) | |
| solara.Markdown(f"##Scatter Matrix") | |
| solara.Markdown(""" | |
| ```python | |
| # With a scatter matrix we can compare changes when comparing column data | |
| flights = sns.load_dataset("flights") | |
| fig3 = px.scatter_matrix(flights, color='month') | |
| ``` | |
| """ | |
| ) | |
| solara.FigurePlotly(fig4) | |
| return main | |