現在、Streamlitを使って、グラフに表示されている点を選択すると
グラフが更新され、先ほど選択した点が消えた状態になれば良いのですが、
現状は、どんどん新しいグラフが追加されていくようになっております。
これを1つのグラフが更新されるように修正したいのですが、
どなたか教えていただければと思います。
よろしくお願いします。
python
1 2import pandas as pd 3import plotly.express as px 4import streamlit as st 5from streamlit_plotly_events import plotly_events 6import plotly.offline as offline 7import plotly.graph_objects as go 8 9df = pd.DataFrame({'X': [1, 2, 3, 4, 5, 6], 'Y': [1, 2, 3, 4, 5, 6]}) 10df2 = pd.DataFrame({'X': [1, 2, 3, 4, 5, 6], 'Y': [1, 2, 3, 4, 5, 6]}) 11 12aaa = st.checkbox('AAA') 13counter = 0 14 15while aaa == True: 16 st.write(df) 17 st.write(counter) 18 key = "hover" +'_'+ str(counter) 19 st.write(key) 20 fig1 = px.scatter(df, x='X', y='Y',color_discrete_sequence=["red"]) 21 fig2 = px.line(df2,x='X', y='Y') 22 fig1.update_layout(clickmode='select') 23 fig = go.Figure(data=fig1.data + fig2.data) 24 selected_points = plotly_events( 25 fig, 26 click_event = False, 27 select_event = True, 28 override_height = 500, 29 override_width = "100%", 30 key = key 31 ) 32 try: 33 selected_points = eval(selected_points) 34 df_final = df.iloc[[v['pointIndex'] for v in selected_points]] 35 st.write(df_final) 36 st.write('削除後の点は以下') 37 df = df[~df['X'].isin(df_final['X'])] 38 counter = counter + 1 39 except: 40 break 41
あなたの回答
tips
プレビュー