Hello,
You can “trick” the deselection by changing the key with a random ‘key’.
import streamlit as st
import plotly.express as px
import hashlib
import time
# Generate a unique hash key based on the current time and user session
def generate_unique_key():
return hashlib.md5(str(time.time()).encode()).hexdigest()
# Load data and create figure
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length")
# Generate a unique key
unique_key = generate_unique_key()
# Display Plotly chart with unique key
event = st.plotly_chart(fig, key=unique_key, on_select="rerun")
Wow , that’s a clever solution , I will definitely give it a try.
Actually for my use case key is important since I am generating multiple charts with same line of code but different indicators , I will append unique key at the end of indicator name.
I tried the solution but this way I am unable to catch the selected points by user, issue arises when user selects different points on different charts st.dialog generates warning
Can you have a look at my code, I want to return event from user selection from st.plotly_chart, selected points goes to a function decorated with @st.dialog.
Once the event is collected I want to programmatically deselect the selected points , I tried the solution of generating unique key but with that I couldn’t catch the event.
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.