Как выровнять x-образцы по столбцам таблицы в matplotlib.pyplot? - PullRequest
1 голос
/ 31 марта 2020

У меня есть фигура, содержащая график и две таблицы.

Я хочу, чтобы выровняло положение x каждого образца с центром соответствующего столбца. .

Количество столбцов совпадает с количеством выборок для построения.

Я нашел этот связанный вопрос , который охватывает тот же вопрос, но для бара диаграмма.

Я не смог перенести результат в мое дело.

Вот пример минимального рабочего кода:

import matplotlib.pyplot
import numpy as np

a = np.arange(20)
b = np.random.randint(1, 5, 20)
fig, ax = plt.subplots()

ax.plot(a, b, marker='o')
ax.table(np.random.randint(1, 5, (4, 20)), loc="top")
ax.table(np.random.randint(1, 5, (4, 20)))
ax.set_xticklabels([])


plt.subplots_adjust(top=0.85, bottom=0.15)
fig.savefig('test.png')

Создает этот вывод:

enter image description here

Как видите, кружки, представляющие образцы, не центрированы относительно соответствующих столбцов.

Любая помощь приветствуется!

1 Ответ

1 голос
/ 01 апреля 2020

Для меня это всегда работало, чтобы изменить xlim и тем самым жестко закодировать выравнивание.

plt.xlim(left=first-0.5, right=last+0.5)

интеграция этого в ваш пример привела бы к:

import matplotlib.pyplot
import numpy as np

a = np.arange(20)
b = np.random.randint(1, 5, 20)
fig, ax = plt.subplots()

ax.plot(a, b, marker='o')
ax.table(np.random.randint(1, 5, (4, 20)), loc="top")
ax.table(np.random.randint(1, 5, (4, 20)))
ax.set_xticklabels([])
plt.xlim(left=a[0]-0.5, right=a[-1]+0.5)

plt.subplots_adjust(top=0.85, bottom=0.15)
fig.savefig('test.png')

Надежда, которая помогает !

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...