Matplotlib sharex не работает должным образом - PullRequest
0 голосов
/ 04 августа 2020

Я уверен, что упускаю что-то очевидное, но почему sharex=True, sharey=True не работает? Я ожидал, что xlims и xticks будут одинаковыми для обоих подзаголовков, а ylims / yticks будут одинаковыми для обоих подзаголовков. Используя Python 3.8.3, matplotlib 3.2.1.

x1, y1 = [(2,7,1), (6,2,2)]
x2, y2 = [(8,3,0), (1,4,9)]

fig, ax = plt.subplots(2,1, sharex=True, sharey=True, figsize=(15, 8));
ax1 = plt.subplot(2,1,1);
ax1.scatter(x1, y1,  c='red', label='Set1');
ax2 = plt.subplot(2,1,2);
ax2.scatter(x2, y2, c='black', label='Set2');

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

1 Ответ

1 голос
/ 04 августа 2020

ax1 = plt.subplot(2,1,1); создает другой (новый) подзаголовок, чем те, которые уже были в ax. Вы хотите:

fig, ax = plt.subplots(2,1, sharex=True, sharey=True, figsize=(15, 8));
ax1, ax2 = ax

ax1.scatter(x1, y1,  c='red', label='Set1');
ax2.scatter(x2, y2, c='black', label='Set2');

Или просто:

fig, ax = plt.subplots(2,1, sharex=True, sharey=True, figsize=(15, 8));


ax[0].scatter(x1, y1,  c='red', label='Set1');
ax[1].scatter(x2, y2, c='black', label='Set2');

Вывод:

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

...