gpt4 book ai didi

python - Matplotlib 基于手动缩放的 x 轴缩放 y 轴

转载 作者:太空宇宙 更新时间:2023-11-04 03:42:42 24 4
gpt4 key购买 nike

我有很多数据在 x 轴上相关,但都以非常不同的 Y 值为中心。 x 上的数据也很长,所以很难看到细节。我希望能够为数据集手动设置 x 轴,然后让绘图根据位于手动设置的 x 轴内的数据点的值重新调整 y 轴本身。

这可以用 matplotlib 实现吗?

最佳答案

根据 mdurant 的评论,我写了一些最小的示例作为您的起点:

import pylab as pl

pl.figure()
x = pl.rand(30)
x.sort()
y = pl.sin(2 * pl.pi * x) + 0.1 * pl.randn(30)
pl.plot(x, y)

def ondraw(event):
xlim = pl.gca().get_xlim()
y_sel = y[pl.logical_and(x > xlim[0], x < xlim[1])]
pl.gca().set_ylim((y_sel.min(), y_sel.max()))

pl.gcf().canvas.mpl_connect('draw_event', ondraw)

您可能想添加更多 events处理鼠标移动等。

一些评论:

  • 我正在使用 pylab,因为它提供了用于生成考试数据的有用函数。但您也可以导入 matplotlib 库。
  • ondraw 事件处理程序获取当前轴 gca() 的当前 x 限制,选择具有相应 x 的 y 在 x 限制内坐标并设置新的 y 限制,该限制由所选坐标的最小和最大 y 值确定。
  • 使用mpl_connect,我们将事件处理程序附加到当前轴。每次绘制轴时 - 例如由于新的绘图命令或手动用户交互 - 它调用 ondraw 来更新 y 限制。

关于python - Matplotlib 基于手动缩放的 x 轴缩放 y 轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25534524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com