Matplotlib квадратный boxplot - PullRequest
4 голосов
/ 02 октября 2009

У меня есть сюжет из двух коробок на одной фигуре. По причинам стиля ось должна иметь одинаковую длину, чтобы графическое поле было квадратным. Я пытался использовать метод set_aspect, но оси слишком разные из-за их диапазона и результат ужасен.

Можно ли иметь оси 1: 1, даже если они не имеют одинакового количества точек?

Ответы [ 3 ]

5 голосов
/ 02 октября 2009

Вы можете использовать Axes.set_aspect , чтобы сделать это, если вы установите соотношение сторон к пределу отношения осей. Вот пример: alt text

from matplotlib.pyplot import figure, show

fig = figure()

ax0 = fig.add_subplot(1,2,1)
ax0.set_xlim(10., 10.5)
ax0.set_ylim(0, 100.)
ax0.set_aspect(.5/100)

ax1 = fig.add_subplot(1,2,2)
ax1.set_xlim(0., 1007)
ax1.set_ylim(0, 12.)
x0, x1 = ax1.get_xlim()
y0, y1 = ax1.get_ylim()
ax1.set_aspect((x1-x0)/(y1-y0))

show()

Может быть, есть более простой способ, но я этого не знаю.

3 голосов
/ 02 октября 2009

Попробуйте axis('equal'). Прошло много времени с тех пор, как я работал с matplotlib, но я помню, что часто набирал эту команду.

2 голосов
/ 19 января 2012

Для графиков журнала (loglog()) не забудьте использовать

ax1.set_aspect(log10(xmax/xmin)/log10(ymax/ymin))
...