繁体   English   中英

用于选择绘图区域的矩形并找到最大值

[英]Rectangle to select area in plot and find maximum value

我正在寻找有关从哪里开始编写我的最新项目的建议。

我希望能够在matplotlib图上绘制稍微透明的矩形,并返回此正方形内的值。 该项目的最终目标是返回该区域中的最大值,并在以后用于进一步分析。

这是我以前没有亲眼见过的事情,也不知道从哪个项目开始。 我希望用这个代码指出正确的方向。

感谢您提供任何建议。

最后看的例子。

要以交互方式绘制矩形,可以使用RectangleSelector matplotlib页面有一个例子

然后,您可以找出矩形范围内的哪些点,并使用相应的numpy函数找到最大值。

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets  import RectangleSelector

xdata = np.linspace(0,9*np.pi, num=301)
ydata = np.sin(xdata)*np.cos(xdata*2.4)

fig, ax = plt.subplots()
line, = ax.plot(xdata, ydata)
point, = ax.plot([],[], marker="o", color="crimson")
text = ax.text(0,0,"")

def line_select_callback(eclick, erelease):
    x1, y1 = eclick.xdata, eclick.ydata
    x2, y2 = erelease.xdata, erelease.ydata

    mask= (xdata > min(x1,x2)) & (xdata < max(x1,x2)) & \
          (ydata > min(y1,y2)) & (ydata < max(y1,y2))
    xmasked = xdata[mask]
    ymasked = ydata[mask]

    if len(xmasked) > 0:
        xmax = xmasked[np.argmax(ymasked)]
        ymax = ymasked.max()
        tx = "xmax: {:.3f}, ymax {:.3f}".format(xmax,ymax)
        point.set_data([xmax],[ymax])
        text.set_text(tx)
        text.set_position((xmax,ymax))
        fig.canvas.draw_idle()


rs = RectangleSelector(ax, line_select_callback,
                       drawtype='box', useblit=False, button=[1], 
                       minspanx=5, minspany=5, spancoords='pixels', 
                       interactive=True)

plt.show()

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM