【问题标题】:How to edit table data with interactive event in matplotlib如何在 matplotlib 中使用交互式事件编辑表格数据
【发布时间】:2018-09-25 16:15:40
【问题描述】:

在图中创建了一个表。现在我想在双击单元格后编辑表格,添加、删除或修改该单元格中的数据。就像 Excel 中的编辑功能一样。我的python版本是3.64。代码如下:

import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()

# Hide axes
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)

# Table from Ed Smith answer
clust_data = [[1,1,7]]
collabel=("col 1", "col 2", "col 3")
ax.table(cellText=clust_data,colLabels=collabel,loc='center')
plt.show()

【问题讨论】:

  • 绝对可以编辑表格;但它不是以任何方式内置的。因此,您需要自己编写该功能。你需要注册一个双击事件,获取被点击的艺术家,动态显示一个可编辑的matplotlib.widgets.TextBox,然后将表格单元格的内容设置为TextBox的内容。我怀疑这是有人会为你写的东西;所以尝试实现这一点,然后询问这样做时发生的任何问题。
  • 是的,代码是在这个网站上找到的。经过多次搜索,我仍然不知道应该使用哪个控件或小部件的详细信息
  • 最近,我发现我的期望主要是python中的wxpython包。但是matplotlib中绘制的界面在wxpython中没有显示。你熟悉吗?stackoverflow.com/questions/49893460/…

标签: python matplotlib interactive


【解决方案1】:

看来你用纯matplotlib函数来实现这一点并不容易。

您应该考虑查看qgrid 模块,该模块在 Jupyter Notebook 中提供类似 Excel 的交互式表格编辑。

然后,如果您想相应地更改图表,则需要创建一些与表格的交互。 ipywidgets 真的可以帮到你。

【讨论】:

  • 但是我在 pycharm 中运行程序,而不是在 Jupyter Notebook 中
  • 应该选择哪个模块
  • 实际上,您尝试执行的工作类型与数据分析和操作有关。您绝对应该尝试使用 Jupyter Notebook 来完成此类任务,因为它具有交互性和许多有用的小部件。
  • Wxpython 可能是更好的选择。
猜你喜欢
  • 1970-01-01
  • 2018-01-21
  • 2020-03-12
  • 1970-01-01
  • 2011-08-23
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多