Пределы осей для участка рассеяния – Matplotlib

У меня такая же проблема представлена здесь , однако предлагаемое решение не сработало для меня.

Я рисую набор данных, которые основной сюжет имеет этот шаблон:

введите описание изображения здесь

Которая представляет собой график, границы оси которого варьируются от (-1, 1) как от x, так и от y, с запасом, установленным с этим фрагментом кода:

plt.figure() plt.show(data) ## Add some margin l, r, b, t = plt.axis() dx, dy = rl, tb plt.axis([l-0.1*dx, r+0.1*dx, b-0.1*dy, t+0.1*dy]) 

Проблема заключается в том, что у меня есть более «сложный» сюжет, в котором мне пришлось внести некоторые изменения. Это код, который его производит:

 def plot_quiver_singularities(min_points, max_points, vector_field_x, vector_field_y, file_path): """ Plot the singularities of vector field :param file_path : the path to save the data :param vector_field_x : the vector field x component to be plot :param vector_field_y : the vector field y component to be plot :param min_points : a set (x, y) of min points field :param max_points : a set (x, y) of max points field """ fig = plt.figure(figsize=(8, 8)) ax = fig.add_axes([.13, .3, .6, .6]) ## Plot quiver x, y = numpy.mgrid[-1:1:100*1j, -1:1:100*1j] m = numpy.sqrt(numpy.power(vector_field_x, 2) + numpy.power(vector_field_y, 2)) quiver = ax.quiver(x, y, vector_field_x, vector_field_y, m, zorder=1) ## Plot critical points x = numpy.linspace(-1, 1, x_steps) y = numpy.linspace(-1, 1, y_steps) # Draw the min points x_indices = numpy.nonzero(min_points)[0] y_indices = numpy.nonzero(min_points)[1] ax.scatter(x[x_indices], y[y_indices], marker='$\\circlearrowright$', s=100, zorder=2) # Draw the max points x_indices = numpy.nonzero(max_points)[0] y_indices = numpy.nonzero(max_points)[1] ax.scatter(x[x_indices], y[y_indices], marker='$\\circlearrowleft$', s=100, zorder=2) ## Put legends marker_min = plt.Line2D((0, 0), (0, 0), markeredgecolor=(1.0, 0.4, 0.0), linestyle='', marker='$\\circlearrowright$', markeredgewidth=1, markersize=10) marker_max = plt.Line2D((0, 0), (0, 0), markeredgecolor=(0.2, 0.2, 1.0), linestyle='', marker='$\\circlearrowleft$', markeredgewidth=1, markersize=10) plt.legend([marker_min, marker_max], ['CW rot. center', 'CCW rot. center'], numpoints=1, loc='center left', bbox_to_anchor=(1, 0.5)) quiver_cax = fig.add_axes([.13, .2, .6, .03]) fig.colorbar(quiver, orientation='horizontal', cax=quiver_cax) ## Set axis limits plt.xlim(-1, 1) plt.ylim(-1, 1) ## Add some margin # l, r, b, t = plt.axis() # dx, dy = rl, tb # plt.axis([l-0.1*dx, r+0.1*dx, b-0.1*dy, t+0.1*dy]) plt.savefig(file_path + '.png', dpi=dpi) plt.close() 

Это приводит к следующему изображению:

введите описание изображения здесь

Как видно, пределы оси не сохраняются, и пока я не нашел причины.

Любая помощь будет оценена по достоинству.

Заранее спасибо.

Я смог решить проблему, поставив эту часть кода

 plt.xlim(-1, 1) plt.ylim(-1, 1) 

Прямо под вызовом scatter() .