Я строю последовательные изображения точки, вращающейся по кругу.Я пытаюсь вывести квадратные изображения, используя plt.savefig()
.Выход по умолчанию имеет размеры 640 × 480 (не квадратные).
Используя figure(figsize = (x_size,y_size))
, я могу указать количество дюймов вдоль каждого измерения в выходных данных plt.savefig()
, как описано в КакВы меняете размер рисунков, нарисованных с помощью matplotlib? .Однако это центрирует изображение так, что моя точка всегда появляется в центре кадра.
Чтобы быть более понятным, используя следующий код, я могу вывести квадратные изображения (500 × 500) точек, вращающихся по кругу:
for i in range(N):
x = np.cos(w * t)
y = np.sin(w * t)
t += dt
plt.xlim(-2, 2)
plt.ylim(-2, 2)
fig = plt.figure(figsize=(5, 5))
plt.scatter(x, y, marker='o', c='black', s=100)
plt.axis('off')
plt.savefig("./fig" + str(i) + ".png")
Однако изображение смещено вдоль xось Y так, что точка всегда появляется в центре изображения.
Как можно выводить квадратные изображения без центрирования изображения?
РЕДАКТИРОВАТЬ: Решение заключается в определении fig = plt.figure(figsize=(5, 5))
перед настройкой plt.xlim(-2, 2)
и plt.ylim(-2, 2)
.