PyQt4 - 将滑块的范围链接到绘图轴的范围

Posted

技术标签:

【中文标题】PyQt4 - 将滑块的范围链接到绘图轴的范围【英文标题】:PyQt4 - link the extent of a slider to the extent of a plotting axis 【发布时间】:2016-08-19 08:24:12 【问题描述】:

使用 PyQt4 和 matplotlib 如何将滑块的范围(即长度)链接到同一窗口中绘图轴的范围,这样即使窗口重新缩放,滑块的长度也与绘图轴相同?

【问题讨论】:

这是 Qt 滑块还是 mpl.widgets 滑块? @fen 我的回答解决了你的问题吗? 【参考方案1】:

您可以使用ax.get_xlim()ax.get_ylim()matplotlib 图中获取轴的限制。这些返回一个tuple,其中包含数据坐标中该轴的最小值和最大值。使用数据坐标的优点是它们保持不变,无论绘图的缩放比例如何。

Qt 自动调整QSlider 的范围以将最小值/最大值置于滑块的极限处。因此,您可以简单地使用轴限制值来设置QSlider 的范围,以获得滑块位置与轴上位置之间的 1:1 关系。

 xlims = ax.get_xlim()  # e.g. (0, 200)

 slider = QSlider()
 slider.setRange(*xlims)  # unpack the tuple into setRange
                          # alternatively slider.setRange(xlims[0], xlims[1])

【讨论】:

以上是关于PyQt4 - 将滑块的范围链接到绘图轴的范围的主要内容,如果未能解决你的问题,请参考以下文章

用matlab绘图时,如何只设定一个轴范围?

具有日期时间和散点图交互的绘图破折号范围滑块

如何定义matlab里面绘图的x,y轴的范围

3D 绘图刻度标签与轴值不匹配(R 格)

使用包含当前值的浮动 DIV 自定义 HTML 范围输入

Shiny R仅绘制滑块范围的极值