如果显示图片,图正在改变其大小

问题描述

我的代码需要一点帮助。 我想使用图片作为背景。 图片将是一个测量设备,因此我可以看到该设备在哪个位置具有哪个速度。 不幸的是,每当我激活第47行时:

ax3.imshow(img,extent=[x1,x3,max(ID2)])

在使用矩形选择器选择区域后,第三图正在改变其大小。 Whithout 47号线工作正常。 您知道问题出在哪里吗?

图1和图2: x轴:行进方式 y轴:速度

图3: x轴:行进方式 y轴:Wt(设备正在管道中移动。顶线和底线是管道的直径。)

另外,这是我的照片。 (目前,它只是一个用油漆制成的红色背景作为占位符,我可以看到代码是否正常工作。)
enter image description here

我还有一个问题可以回答: 矩形是否可能停留在最大的y轴大小。 这意味着我只能将他左右移动,而不能上下移动。

我希望我写得足够清楚。 如有任何问题,请告诉我。

感谢您和最诚挚的问候

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


'''Daten einlesen'''

x = [1,2,3,4,5,6,7,8,9,10]
y = [1,1,1]
ID1 = [5,5]
ID2 = [200,200,200]

img = plt.imread("bild.png")

'''PLotten'''

plt.close()

fig,(ax1,ax2,ax3) = plt.subplots(3)


def Daten_plotten (ax,xx,yy):
    ax.plot(xx,yy)
    ax.set_xlim([min(xx)-1,max(xx)+1])
    ax.set_ylim([min(yy)-0.5,max(yy)+0.5])

Daten_plotten(ax1,x,y,)
Daten_plotten(ax2,y)
Daten_plotten(ax3,ID1)
Daten_plotten(ax3,ID2)
ax3.set_xlim([min(x),max(x)])
ax3.set_ylim([0,max(ID2)+1])


def line_select_callback_ax1(eclick,erelease):
    'eclick and erelease are the press and release events'
    x1,y1 = eclick.xdata,min(y)-0.5
    x2,y2 = erelease.xdata,max(y)+0.5
    x3 = x1 + (x2-x1)/2
    
    print("(%3.2f) --> (%3.2f)" % (x1,x2))
    print(x3)
                  
    ax2.set_xlim([x1,x2])
    ax2.set_ylim([y1,y2])
    
    
    ax3.imshow(img,max(ID2)])
   
    ax3.set_xlim([x1,x2])
    ax3.set_ylim([0,max(ID2)+1])
    
    plt.pause(0.01)
    fig.canvas.draw

RS = RectangleSelector(ax1,line_select_callback_ax1,drawtype='Box',useblit=True,button=[1,3],# don't use middle button
                                       minspanx=1,minspany=1,spancoords='pixels',interactive=True)

plt.show()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)