问题标签 [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.
python-3.x - 如何使用 matplotlib blitting 将 matplot.patches 添加到 wxPython 中的 matplotlib 图?
我正在使用 matplotlib 库制作一个绘图并将其显示在我的 wxPython GUI 中。我正在绘制来自激光雷达仪器的大量数据点。问题是,我想在这个图中绘制矩形来指示有趣的区域。但是当我在与绘图相同的轴上绘制一个矩形时,整个绘图会被重新绘制,这需要很多时间。这是因为 self.canvas.draw(),一个重新绘制所有内容的函数。
代码在 GUI 中显示如下:
这是该问题的最小工作示例。你可以通过按住鼠标右键来绘制矩形。使用左侧的按钮绘制 NetCDF 数据后,矩形的绘制变得非常缓慢。我使用 ImportanceOfBeingErnest 提供的示例尝试了一些使用 blitting 的方法,但经过多次尝试,我仍然没有设法让它工作。
为了使最小的工作示例正常工作,您必须在 plot_Data() 函数下指定 NetCDF 文件的路径。我提供了要在此处下载的 NetCDF 文件:
如何在 onselect 函数中将 self.square 粘贴到 self.canvas?
python - 我如何(在 Python 中)通过使用 blitting 从绘图中删除 matplotlib 艺术家?
我可以使用 blitting 删除 matplotlib 艺术家,例如补丁吗?
要使用blit将补丁添加到 matplotlib 图,您可以执行以下操作:
这行得通。但是,我可以使用blit将同一位艺术家从情节中移除吗?我设法将其删除,并且可以使用该功能square.remove()
更新绘图。self.canvas.draw()
但是当然这很慢,我想改用blitting。
以下不起作用:
python - 如何将 matplotlib.widget.Button 添加到我的 wxpython 绘图画布?
我一直在尝试将 matplotlib.widget.Button 添加到我的 matplotlib 绘图画布中,该画布集成在 wxPython 中,但没有成功。
这是生成画布的代码:
如何在 wxPython 中向这个 matplotlib 图的轴添加一个按钮?我试图遵循这个例子:https://matplotlib.org/examples/widgets/buttons.html,但没有成功,因为你没有plt.axes
在 wxPython 的 matplotlib 中使用
我尝试了以下方法,实际上确实向画布添加了一个按钮,但它不是交互式的。
这就是 GUI 画布现在的样子: 非交互式按钮
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 值?
python-3.x - 使用 Matplotlib 交互式按钮时如何减少空闲时间
我怀疑我以matplotlib
某种错误的方式使用了交互功能,因为在使用以下代码和结构时,我必须在一个情节和下一个情节之间等待几秒钟。
我的数据库pandas
DataFrame
约为 (3800 x 56) float
,具有 3-D 分层索引。
然后我继续创建matplotlib
figure
andaxes
我很挣扎,Slider
因为我希望它只接受整数,所以我最终选择了两个按钮,不得不使用一个小对象来保持它们的状态。
(不直接是我的问题,但欢迎任何建议是否有其他交互元素可以避免创建此对象)
执行后,每次单击按钮时,我都会立即看到打印输出,但必须等待很长时间才能最终绘制数据。
另一方面,如果我plot_data(i)
从 shell 调用,绘图是立即的。因此,我假设我没有调用正确的绘图函数,但这里没有任何线索。
编辑
受第二次阅读 Joe_Kington关于离散的回复Slider
的启发(感谢 Tom),我想在我的plot_data(i)
函数中添加这个简单的行:
绘图现在是即时的。如果有人能指出我需要这样做的原因,我仍然会很感激。
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:
- 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.
- Make 4 plots in 4 different figures, so that it looks like a square with 4 plots of 4 different 'v0' and 'theta' values
- 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!
python - 在特定图形中绘制图形对象
我有一个来自黑盒类型的对象:
<matplotlib.axes._axes.Axes object at 0x7fedbe19c1d0>
我想在我的 pyqt5 GUI 中的 matplotlibwidget 中绘制它。
问题是:如何在特定图中绘制我的对象?
我试过这个:
myObject = blackBox()
myObject_figure = myObject.get_figure()
myObject_figure.show()
所以在这里我可以将我的<matplotlib.figure.Figure>
对象绘制在一个新的图形中,但我想将它绘制在一个特定的图形中......
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 的符号出现在仪表板上,但没有任何反应。没有错误,没有警告......什么都没有。