“Unrecognised Dataset” error occurs in altair chart for multiuser

90 Views Asked by At

Summary I have developed an app to plot the values in a altair chart. The values are first appended in the pandas dataframe and then plotted using the altair chart. The app works fine in the single-user case. In the multi user case, app throws the Unrecognised dataset error in the plotting area.

Steps to reproduce Import the necessary libraries Declare the pandas dataframe Declare the data to be plotted Append the data one by one in the dataframe Plot the data using altair chart

Code Snippet import streamlit as st import pandas as pd from datetime import datetime, timedelta import altair as alt import time as t
import math
st.title("Sine wave Plotting") df_Tidal_Volume = pd.DataFrame(columns=["time","Tidal_Volume"]) chart_Tidal_Volume = st.empty() start_time = datetime.now() while True: try: data = [5math.sin(math.radians(0)),5math.sin(math.radians(9)),5math.sin(math.radians(13.5)),5math.sin(math.radians(18)),5math.sin(math.radians(22.5)),5math.sin(math.radians(27)),5math.sin(math.radians(31.5)),5math.sin(math.radians(36)),5math.sin(math.radians(40.5)),5math.sin(math.radians(45))] t.sleep(0.03) time = datetime.now() df_Tidal_Volume = df_Tidal_Volume.append({"time": time, "Tidal_Volume": data[0]}, ignore_index=True) latest_time = time - start_time if latest_time >= timedelta(milliseconds=50): a=chart_Tidal_Volume.altair_chart(alt.Chart(df_Tidal_Volume.tail(200)).mark_line().encode(x='time',y=alt.Y('Tidal_Volume', scale=alt.Scale(domain=[0,6])))) print("Plot Success") else: print("Data not received") t.sleep(0.03)

Expected behavior: The app should plot the data while accessing the app from multiple devices

Actual behavior: The app throws the following error while accessing from more than one device Error from Streamlit Application

Links Link to your GitHub repo:appdevelopment/st1.py at main · santhosh-graceson/appdevelopment · GitHub Link to your deployed app:https://abcd1234.streamlit.app/

0

There are 0 best solutions below