问题标签 [matplotlib-widget]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
969 浏览

python-3.x - 如何使用 matplotlib blitting 将 matplot.patches 添加到 wxPython 中的 matplotlib 图?

我正在使用 matplotlib 库制作一个绘图并将其显示在我的 wxPython GUI 中。我正在绘制来自激光雷达仪器的大量数据点。问题是,我想在这个图中绘制矩形来指示有趣的区域。但是当我在与绘图相同的轴上绘制一个矩形时,整个绘图会被重新绘制,这需要很多时间。这是因为 self.canvas.draw(),一个重新绘制所有内容的函数。

代码在 GUI 中显示如下:

GUI的打印屏幕

这是该问题的最小工作示例。你可以通过按住鼠标右键来绘制矩形。使用左侧的按钮绘制 NetCDF 数据后,矩形的绘制变得非常缓慢。我使用 ImportanceOfBeingErnest 提供的示例尝试了一些使用 blitting 的方法,但经过多次尝试,我仍然没有设法让它工作。

为了使最小的工作示例正常工作,您必须在 plot_Data() 函数下指定 NetCDF 文件的路径。我提供了要在此处下载的 NetCDF 文件:

下载 NetCDF 文件

如何在 onselect 函数中将 self.square 粘贴到 self.canvas?

0 投票
1 回答
1512 浏览

python - 我如何(在 Python 中)通过使用 blitting 从绘图中删除 matplotlib 艺术家?

我可以使用 blitting 删除 matplotlib 艺术家,例如补丁吗?

要使用blit将补丁添加到 matplotlib 图,您可以执行以下操作:

这行得通。但是,我可以使用blit将同一位艺术家从情节中移除吗?我设法将其删除,并且可以使用该功能square.remove()更新绘图。self.canvas.draw()但是当然这很慢,我想改用blitting

以下不起作用:

0 投票
1 回答
1429 浏览

python - 如何将 matplotlib.widget.Button 添加到我的 wxpython 绘图画布?

我一直在尝试将 matplotlib.widget.Button 添加到我的 matplotlib 绘图画布中,该画布集成在 wxPython 中,但没有成功。

这是生成画布的代码:

如何在 wxPython 中向这个 matplotlib 图的轴添加一个按钮?我试图遵循这个例子:https://matplotlib.org/examples/widgets/buttons.html,但没有成功,因为你没有plt.axes在 wxPython 的 matplotlib 中使用

我尝试了以下方法,实际上确实向画布添加了一个按钮,但它不是交互式的。

这就是 GUI 画布现在的样子: 非交互式按钮

0 投票
1 回答
173 浏览

python - Python堆积条形图不像Excel图表那样显示

我正在尝试在 Python 中创建一个堆积条形图,以尝试匹配 Excel 生成的堆积条形图,但我似乎无法让它与 Excel 的输出相匹配。Python 图表没有显示 A 数组中的值。excel图表 python图表

0 投票
0 回答
41 浏览

python - 如何告诉交互窗口用双轴显示哪个 y 值?

我正在编写一个 Python 脚本来显示音高分析的结果。我已将第一个轴配对并提供了一个自定义代码,因此我可以查看 Hz 和 Pitch 的结果。基于https://matplotlib.org/2.1.0/gallery/api/two_scales.html示例的相关代码是:

除了一个方面,这可以按需要工作,不幸的是,这对最终用户来说是一个主要问题。当窗口显示并且指针在轴上移动时,显示的 Y 值是来自配对轴的 Y 值ax2,而不是来自第一个轴的 Y 值。

具有孪生轴的交互窗口: 在此处输入图像描述

右下角给出的 Y 值是ax2's给出的值ticker.FuncFormatter,我找不到一种方法让它显示ax1's 值,以便f0显示以 Hz 为单位的值。

我发现一种可能的解决方案是在 上画线和三角形ax1,然后创建ax2并说

但这似乎很违反直觉,并且感觉将来可能会中断。

我曾尝试过打电话plt.sca(ax1),甚至ax2.set_axisbelow(True)以前也试过,plt.show()但这并没有改变任何事情。

报告鼠标位置时,是否有官方方法告诉交互窗口显示哪些 X 和 Y 值?

0 投票
0 回答
23 浏览

python-3.x - 使用 Matplotlib 交互式按钮时如何减少空闲时间

我怀疑我以matplotlib某种错误的方式使用了交互功能,因为在使用以下代码和结构时,我必须在一个情节和下一个情节之间等待几秒钟。

我的数据库pandas DataFrame约为 (3800 x 56) float,具有 3-D 分层索引。

然后我继续创建matplotlib figureandaxes

我很挣扎,Slider因为我希望它只接受整数,所以我最终选择了两个按钮,不得不使用一个小对象来保持它们的状态。

(不直接是我的问题,但欢迎任何建议是否有其他交互元素可以避免创建此对象)

执行后,每次单击按钮时,我都会立即看到打印输出,但必须等待很长时间才能最终绘制数据。

另一方面,如果我plot_data(i)从 shell 调用,绘图是立即的。因此,我假设我没有调用正确的绘图函数,但这里没有任何线索。

编辑

受第二次阅读 Joe_Kington关于离散的回复Slider的启发(感谢 Tom),我想在我的plot_data(i)函数中添加这个简单的行:

绘图现在是即时的。如果有人能指出我需要这样做的原因,我仍然会很感激。

0 投票
1 回答
77 浏览

python-3.x - 我的 matplot 网格关闭了 -0.5

我正在尝试使用 matplotlib 库和 python 3 将颜色映射应用于二维数组。为简单起见,我制作了一个示例代码来显示我的问题:

示例代码:

使用这段代码,我有一个 20 x 20 的网格,除了两个单元格之外,其他地方都是白色的[2,2][4,4]应该是红色的。问题是当我显示我的网格时,单元格在两个方向上都偏离了 -0.5。我从这个示例代码中得到的是: 在此处输入图像描述

如果我将网格移动-0.5:

然后我的单元格看起来正确,现在网格都错了! 在此处输入图像描述

我的代码有什么问题?我真的不明白这怎么会发生?!

0 投票
1 回答
231 浏览

python - How to plot same function with many different values in subplots in numpy/matplotlib python?

I have following python code, and would like to:

  1. Plot the same function in 1 (only one) figure with many different (lets say 4) 'v0' and 'theta' values, each trajectory in a different color.
  2. Make 4 plots in 4 different figures, so that it looks like a square with 4 plots of 4 different 'v0' and 'theta' values
  3. Make a widget to vary the v0 and theta values as the user wants with the mouse.

I could do point 1 and 2 of my question with changing the values after plotting, then calculate vx0 and vy0 again and then call the integrate function and finally plot again, but that's kinda weird and not clean. Is there any better way to do that? like an array of different v0 and theta values or something?

Thanks!

0 投票
1 回答
252 浏览

python - 在特定图形中绘制图形对象

我有一个来自黑盒类型的对象:

<matplotlib.axes._axes.Axes object at 0x7fedbe19c1d0>

我想在我的 pyqt5 GUI 中的 matplotlibwidget 中绘制它。

问题是:如何在特定图中绘制我的对象?

我试过这个:

myObject = blackBox() myObject_figure = myObject.get_figure() myObject_figure.show()

所以在这里我可以将我的<matplotlib.figure.Figure>对象绘制在一个新的图形中,但我想将它绘制在一个特定的图形中......

0 投票
1 回答
608 浏览

python-2.7 - 带有 TkAgg 后端的 matplotlib 在 Mac High Sierra 上不起作用

我有一个用于绘制数据并且在 Windows 7 机器上运行良好的 GUI(wxPython) 代码:

  • Python 2.7.14(v2.7.14:84471935ed,2017 年 9 月 16 日,20:19:30)[MSC v.1500 32 位(英特尔)] 在 win32 上
  • matplotlib.get_backend() 返回 TkAgg 作为后端
  • wx。版本 “4.0.1”

但是,它不适用于 Mac OS High Sierra

  • Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 12:01:12) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] 在 darwin
  • matplotlib.get_backend() 返回 TkAgg 作为后端
  • wx。版本 “4.0.1”

python 的符号出现在仪表板上,但没有任何反应。没有错误,没有警告......什么都没有。

在此处输入图像描述