gpt4 book ai didi

python - 矩形选择图中的区域并找到最大值

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

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

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

这是我以前从未亲自见过的事情,也不知道从哪里开始这个项目。我希望用这段代码指明正确的方向。

感谢您提供的任何建议。

example of final look.

最佳答案

要交互式绘制矩形,您可以使用 RectangleSelector。有 an example在 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()

enter image description here

关于python - 矩形选择图中的区域并找到最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44274938/

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