Я хочу использовать ax.axis('equal')
, чтобы наложить один шаг на X & Y, но я также хочу указать конкретные диапазоны для осей X и Y. Если поля также фиксированы, проблема ограничена, и результат показан в левой части рисунка 1. Если вместо этого полям разрешалось автоматически увеличивать себя, чтобы занять слабину, тогда xlim
и ylim
могли остаться, когда я их установил, все еще удовлетворяя axis('equal')
. Пример того, что мне нужно, показан в правой части рисунка 1. Как я могу позволить полям графика «плавать»?Как использовать xlim и ylim при использовании ax.axis ('equal')?
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
Рисунок 1: Выход из приведенного выше фрагмента кода.
Вы должны поместить 'set_xlim',' set_ylim' до конца, чтобы избежать автоматического перемасштабирование. – dnalow
@dnalow Это не работает, если я удалю все после 'ax.set_ylim()', и это не сработает, если я скопирую 'set_xlim()', 'set_ylim()' до конца после того, как все будет сделано. –
это из-за 'ax.axis ('equal'). Он фиксирует степпинг, поэтому subplotsize должен соответствовать вашим лимитам, что означает, в свою очередь, что размер вашей фигуры должен соответствовать или параметры подзадачи. – dnalow