Контроль расположения центра графика p ie на нескольких рисунках при настройке меток различной длины - PullRequest
0 голосов
/ 10 апреля 2020

Я генерирую один график p ie для каждого рисунка, а затем сохраняю этот рисунок на диск (как векторное изображение PDF). Некоторые из этих графиков могут иметь длинные метки, в результате чего центр p ie смещается вправо.

Я хочу контролировать расположение центра диаграммы p ie на каждой фигуре. Таким образом, когда все фигуры размещены на документе вертикально (в моем случае - LaTeX), диаграммы p ie выглядят выровненными.

Я пытался использовать plt.set_location (), но, похоже, это влияет только на субплоты, когда существует более 1 сюжета.

Базовый c пример того, что я делаю, приведен ниже. Я хочу иметь возможность сдвинуться на 2-й сюжет с достаточным дополнением. Я могу сделать базовое предположение о том, как долго будет длиться самый длинный ярлык.

Есть идеи?

import matplotlib.pyplot as plt

fracs = [15, 30, 45, 10]
fig, ax = plt.subplots(figsize=(5, 5))
ax.pie(fracs, labels=['Frogs', 'Hogs are really really cool mate', 'Dogs', 'Logs'])

enter image description here

fig, ax = plt.subplots(figsize=(5, 5))
ax.pie(fracs, labels=['Frogs', 'Hogs', 'Dogs', 'Logs'])

enter image description here

1 Ответ

0 голосов
/ 10 апреля 2020

Вы можете использовать fig.subplots_adjust(left=0.3, right=0.7). Здесь left - левая сторона круга, измеренная как часть фигуры. left=0 будет означать, что круг коснется левой части фигуры; left=0.5 будет иметь левую сторону в центре фигуры. Аналогично для right=.

Будьте осторожны, не устанавливайте такую ​​опцию, как tight_layout (bbox_inches='tight) при сохранении, поскольку эта опция позволяет сделать эти поля как можно меньше. .

...