質問編集履歴
9
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
よろしくお願いします。
|
12
12
|
|
13
|
-
|
13
|
+
```python
|
14
14
|
|
15
15
|
|
16
16
|
|
@@ -91,3 +91,7 @@
|
|
91
91
|
except:
|
92
92
|
|
93
93
|
break
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
```
|
8
内容の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
plotlyのグラフ更新
|
1
|
+
plotlyのグラフ表示の更新
|
test
CHANGED
@@ -1,30 +1,16 @@
|
|
1
|
-
現在
|
1
|
+
現在、Streamlitを使って、グラフに表示されている点を選択すると
|
2
2
|
|
3
|
-
|
3
|
+
グラフが更新され、先ほど選択した点が消えた状態になれば良いのですが、
|
4
4
|
|
5
|
-
|
5
|
+
現状は、どんどん新しいグラフが追加されていくようになっております。
|
6
6
|
|
7
|
-
|
7
|
+
これを1つのグラフが更新されるように修正したいのですが、
|
8
8
|
|
9
|
-
|
9
|
+
どなたか教えていただければと思います。
|
10
10
|
|
11
|
-
|
11
|
+
よろしくお願いします。
|
12
|
-
|
13
|
-
*******************************************************
|
14
|
-
|
15
|
-
DuplicateWidgetID: There are multiple identical st.streamlit_plotly_events.plotly_events widgets with the same generated key.
|
16
12
|
|
17
13
|
|
18
|
-
|
19
|
-
When a widget is created, it's assigned an internal key based on its structure. Multiple widgets with an identical structure will result in the same internal key, which causes this error.
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
To fix this error, please pass a unique key argument to st.streamlit_plotly_events.plotly_events.
|
24
|
-
|
25
|
-
*******************************************************
|
26
|
-
|
27
|
-
よろしくお願いいたします。
|
28
14
|
|
29
15
|
|
30
16
|
|
@@ -50,11 +36,19 @@
|
|
50
36
|
|
51
37
|
aaa = st.checkbox('AAA')
|
52
38
|
|
39
|
+
counter = 0
|
40
|
+
|
53
41
|
|
54
42
|
|
55
43
|
while aaa == True:
|
56
44
|
|
57
45
|
st.write(df)
|
46
|
+
|
47
|
+
st.write(counter)
|
48
|
+
|
49
|
+
key = "hover" +'_'+ str(counter)
|
50
|
+
|
51
|
+
st.write(key)
|
58
52
|
|
59
53
|
fig1 = px.scatter(df, x='X', y='Y',color_discrete_sequence=["red"])
|
60
54
|
|
@@ -64,12 +58,36 @@
|
|
64
58
|
|
65
59
|
fig = go.Figure(data=fig1.data + fig2.data)
|
66
60
|
|
67
|
-
selected_points = plotly_events(
|
61
|
+
selected_points = plotly_events(
|
68
62
|
|
69
|
-
|
63
|
+
fig,
|
70
64
|
|
71
|
-
|
65
|
+
click_event = False,
|
72
66
|
|
73
|
-
st
|
67
|
+
select_event = True,
|
74
68
|
|
69
|
+
override_height = 500,
|
70
|
+
|
71
|
+
override_width = "100%",
|
72
|
+
|
73
|
+
key = key
|
74
|
+
|
75
|
+
)
|
76
|
+
|
77
|
+
try:
|
78
|
+
|
79
|
+
selected_points = eval(selected_points)
|
80
|
+
|
81
|
+
df_final = df.iloc[[v['pointIndex'] for v in selected_points]]
|
82
|
+
|
83
|
+
st.write(df_final)
|
84
|
+
|
85
|
+
st.write('削除後の点は以下')
|
86
|
+
|
75
|
-
df = df[~df['X'].isin(df_final['X'])]
|
87
|
+
df = df[~df['X'].isin(df_final['X'])]
|
88
|
+
|
89
|
+
counter = counter + 1
|
90
|
+
|
91
|
+
except:
|
92
|
+
|
93
|
+
break
|
7
ソース変更、文言の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
plotlyのグラフ
|
1
|
+
plotlyのグラフ更新(streamlit)
|
test
CHANGED
@@ -4,9 +4,25 @@
|
|
4
4
|
|
5
5
|
何か方法などありますでしょうか??
|
6
6
|
|
7
|
-
|
7
|
+
一応、下のもので、削除はされていくのですが、削除するたびに更新ではなく、
|
8
8
|
|
9
|
-
|
9
|
+
グラフが新しく作成される状態になりました。
|
10
|
+
|
11
|
+
また、エラーも出るようになってしまっています。
|
12
|
+
|
13
|
+
*******************************************************
|
14
|
+
|
15
|
+
DuplicateWidgetID: There are multiple identical st.streamlit_plotly_events.plotly_events widgets with the same generated key.
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
When a widget is created, it's assigned an internal key based on its structure. Multiple widgets with an identical structure will result in the same internal key, which causes this error.
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
To fix this error, please pass a unique key argument to st.streamlit_plotly_events.plotly_events.
|
24
|
+
|
25
|
+
*******************************************************
|
10
26
|
|
11
27
|
よろしくお願いいたします。
|
12
28
|
|
@@ -32,38 +48,28 @@
|
|
32
48
|
|
33
49
|
|
34
50
|
|
35
|
-
|
36
|
-
|
37
|
-
fig1 = px.scatter(df, x='X', y='Y',color_discrete_sequence=["red"])
|
38
|
-
|
39
|
-
fig2 = px.line(df2,x='X', y='Y')
|
40
|
-
|
41
|
-
|
51
|
+
aaa = st.checkbox('AAA')
|
42
|
-
|
43
|
-
fig = go.Figure(data=fig1.data + fig2.data)
|
44
|
-
|
45
|
-
selected_points = plotly_events(fig, click_event=False, select_event=True)
|
46
52
|
|
47
53
|
|
48
54
|
|
49
|
-
|
55
|
+
while aaa == True:
|
50
56
|
|
51
|
-
st.write(df
|
57
|
+
st.write(df)
|
52
58
|
|
59
|
+
fig1 = px.scatter(df, x='X', y='Y',color_discrete_sequence=["red"])
|
53
60
|
|
61
|
+
fig2 = px.line(df2,x='X', y='Y')
|
54
62
|
|
55
|
-
d
|
63
|
+
fig1.update_layout(clickmode='select')
|
56
64
|
|
65
|
+
fig = go.Figure(data=fig1.data + fig2.data)
|
57
66
|
|
67
|
+
selected_points = plotly_events(fig, click_event=False, select_event=True)
|
58
68
|
|
69
|
+
df_final = df.iloc[[v['pointIndex'] for v in selected_points]]
|
70
|
+
|
59
|
-
|
71
|
+
st.write(df_final)
|
60
72
|
|
61
73
|
st.write('削除後の点は以下')
|
62
74
|
|
63
|
-
df
|
75
|
+
df = df[~df['X'].isin(df_final['X'])]
|
64
|
-
|
65
|
-
st.write(df_final2)
|
66
|
-
|
67
|
-
else:
|
68
|
-
|
69
|
-
st.write('まだ')
|
6
内容の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
streamlit
|
1
|
+
plotlyのグラフの更新(streamlit)
|
test
CHANGED
@@ -1,10 +1,6 @@
|
|
1
|
-
|
1
|
+
現在、Plotlyでのグラフ表示をしています。
|
2
2
|
|
3
|
-
その中で、変更前の数値を使ってグラフを描画しており、
|
4
|
-
|
5
|
-
|
3
|
+
当初描画されているグラフを下の数値を使って更新したいです。
|
6
|
-
|
7
|
-
|
8
4
|
|
9
5
|
何か方法などありますでしょうか??
|
10
6
|
|
5
修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
s
|
1
|
+
streamlitでのグラフの更新
|
test
CHANGED
File without changes
|
4
修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
streamlitでのグラフの更新(計算後の値を使う)
|
1
|
+
shuusei streamlitでのグラフの更新(計算後の値を使う)
|
test
CHANGED
@@ -36,6 +36,8 @@
|
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
+
|
40
|
+
|
39
41
|
fig1 = px.scatter(df, x='X', y='Y',color_discrete_sequence=["red"])
|
40
42
|
|
41
43
|
fig2 = px.line(df2,x='X', y='Y')
|
@@ -52,6 +54,20 @@
|
|
52
54
|
|
53
55
|
st.write(df_final)
|
54
56
|
|
55
|
-
df_final2 = df2[~df2['X'].isin(df_final['X'])]
|
56
57
|
|
58
|
+
|
59
|
+
delete_button = st.button('削除')
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
if delete_button == True:
|
64
|
+
|
65
|
+
st.write('削除後の点は以下')
|
66
|
+
|
67
|
+
df_final2 = df2[~df2['X'].isin(df_final['X'])]
|
68
|
+
|
57
|
-
st.write(df_final2)
|
69
|
+
st.write(df_final2)
|
70
|
+
|
71
|
+
else:
|
72
|
+
|
73
|
+
st.write('まだ')
|
3
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,6 +9,8 @@
|
|
9
9
|
何か方法などありますでしょうか??
|
10
10
|
|
11
11
|
ソース内でいうと、最終的に出てきたdf_final2を使ってscatterを描画したい(更新したい)です。
|
12
|
+
|
13
|
+
ちなみに、px.lineの値はそのままです。
|
12
14
|
|
13
15
|
よろしくお願いいたします。
|
14
16
|
|
2
書式の改善
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,8 +34,6 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
# Select other Plotly events by specifying kwargs
|
38
|
-
|
39
37
|
fig1 = px.scatter(df, x='X', y='Y',color_discrete_sequence=["red"])
|
40
38
|
|
41
39
|
fig2 = px.line(df2,x='X', y='Y')
|
1
ソース追加
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
streamlit
|
1
|
+
streamlitでのグラフの更新(計算後の値を使う)
|
test
CHANGED
@@ -1,9 +1,57 @@
|
|
1
|
-
streamlitを使ってグラフ表示をしてい
|
1
|
+
streamlitを使ってグラフの表示をしています。
|
2
2
|
|
3
|
-
|
3
|
+
その中で、変更前の数値を使ってグラフを描画しており、
|
4
4
|
|
5
|
-
|
5
|
+
何か計算(解析)した値がでしだい、前のグラフを計算後の数値を使って更新したいと思っております。
|
6
|
+
|
7
|
+
|
6
8
|
|
7
9
|
何か方法などありますでしょうか??
|
8
10
|
|
11
|
+
ソース内でいうと、最終的に出てきたdf_final2を使ってscatterを描画したい(更新したい)です。
|
12
|
+
|
9
13
|
よろしくお願いいたします。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
import pandas as pd
|
18
|
+
|
19
|
+
import plotly.express as px
|
20
|
+
|
21
|
+
import streamlit as st
|
22
|
+
|
23
|
+
from streamlit_plotly_events import plotly_events
|
24
|
+
|
25
|
+
import plotly.offline as offline
|
26
|
+
|
27
|
+
import plotly.graph_objects as go
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
df = pd.DataFrame({'X': [1, 2, 3, 4, 5, 6], 'Y': [1, 2, 3, 4, 5, 6]})
|
32
|
+
|
33
|
+
df2 = pd.DataFrame({'X': [1, 2, 3, 4, 5, 6], 'Y': [1, 2, 3, 4, 5, 6]})
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
# Select other Plotly events by specifying kwargs
|
38
|
+
|
39
|
+
fig1 = px.scatter(df, x='X', y='Y',color_discrete_sequence=["red"])
|
40
|
+
|
41
|
+
fig2 = px.line(df2,x='X', y='Y')
|
42
|
+
|
43
|
+
fig1.update_layout(clickmode='select')
|
44
|
+
|
45
|
+
fig = go.Figure(data=fig1.data + fig2.data)
|
46
|
+
|
47
|
+
selected_points = plotly_events(fig, click_event=False, select_event=True)
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
df_final = df.iloc[[v['pointIndex'] for v in selected_points]]
|
52
|
+
|
53
|
+
st.write(df_final)
|
54
|
+
|
55
|
+
df_final2 = df2[~df2['X'].isin(df_final['X'])]
|
56
|
+
|
57
|
+
st.write(df_final2)
|