可以任意选中多个个储位后,将储位颜色标红,并将所选储位的坐标x,y 信息,按选中顺序存储到excel中,,
时间: 2023-11-27 16:03:42 浏览: 49
可以使用 `go.FigureWidget` 的 `selected_data` 属性来获取选中的数据点,并在事件处理程序中将选中的储位标记为红色。然后,可以使用 `pandas` 库将所选的储位坐标和编号存储到 Excel 文件中。以下是一个示例代码:
```python
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
# 创建数据
data = pd.DataFrame({
'储位编号': ['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3'],
'x': [1, 2, 3, 1, 2, 3, 1, 2, 3],
'y': [1, 1, 1, 2, 2, 2, 3, 3, 3],
'物品种类': ['商品A', '商品B', '商品C', '商品A', '商品B', '商品C', '商品A', '商品B', '商品C']
})
# 创建 FigureWidget 对象
fig = go.FigureWidget()
# 添加方块形状的标记层
symbols = fig.add_trace(
go.Scatter(
x=data['x'],
y=data['y'],
mode='markers',
text=data['储位编号'],
marker=dict(
symbol='square',
color=data['物品种类'],
size=20
)
)
)
# 定义单击事件处理程序
def on_click(trace, points, state):
if points.point_inds:
indices = points.point_inds
selected_data = [data.iloc[i] for i in indices]
for i in indices:
symbols.data[0].marker.color[i] = 'red'
selected_data = pd.DataFrame(selected_data)
selected_data = selected_data[['储位编号', 'x', 'y']]
selected_data.to_excel('selected_data.xlsx')
# 注册单击事件处理程序
symbols.on_click(on_click)
# 设置图表标题和布局
fig.update_layout(title='仓库储位图', height=400)
# 显示图表
fig.show()
```
运行代码后,可以在图表上任意选中多个储位,并将它们的颜色标记为红色。同时,所选储位的编号、x 坐标和 y 坐标会按选中顺序存储到名为 `selected_data.xlsx` 的 Excel 文件中。
阅读全文