How can I get the actual axis limits when using ax.axis ('equal')?

I use ax.axes('equal')to make the distance of the axis equal to X and Y, and also set xlimand ylim. This overly limits the problem, and the actual limits are not what I set in ax.set_xlim()or ax.set_ylim(). Using ax.get_xlim()just returns what I have provided. How can I get the actual visible limits of the plot?

f,ax=plt.subplots(1) #open a figure
ax.axis('equal') #make the axes have equal spacing
ax.plot([0,20],[0,20]) #test data set

#change the plot axis limits
ax.set_xlim([2,18]) 
ax.set_ylim([5,15])

#read the plot axis limits
xlim2=array(ax.get_xlim())
ylim2=array(ax.get_ylim())

#define indices for drawing a rectangle with xlim2, ylim2
sqx=array([0,1,1,0,0])
sqy=array([0,0,1,1,0])

#plot a thick rectangle marking the xlim2, ylim2
ax.plot(xlim2[sqx],ylim2[sqy],lw=3) #this does not go all the way around the edge

What commands will allow me to draw a green border around the actual edges of the shape?

A graph showing that the results of get_xlim () and get_ylim () do not match the visible boundaries of the digit

It linked: the Force xlim, ylim, and axes('equal')at the same time, allowing the automatic margin settings

+4
2

, . xlim ylim, xlim ylim, .

f,ax=plt.subplots(1) #open a figure
ax.axis('equal') #make the axes have equal spacing
ax.plot([0,20],[0,20]) #test data set

#change the plot axis limits
ax.set_xlim([2,18]) 
ax.set_ylim([5,15])

#Drawing is crucial 
f.canvas.draw() #<---------- I added this line

#read the plot axis limits
xlim2=array(ax.get_xlim())
ylim2=array(ax.get_ylim())

#define indices for drawing a rectangle with xlim2, ylim2
sqx=array([0,1,1,0,0])
sqy=array([0,0,1,1,0])

#plot a thick rectangle marking the xlim2, ylim2
ax.plot(xlim2[sqx],ylim2[sqy],lw=3) 

Figure created by script

+2

, , , XY? , , , xlim ylim. ax.transAxes, x, y , :

ax.plot([0,0,1,1,0],[0,1,1,0,0], lw=3, transform=ax.transAxes)

, , xlim ylim .

transform=ax.xaxis.get_transform() transform=ax.yaxis.get_transform(), , x y, - .

+1

Source: https://habr.com/ru/post/1655988/


All Articles