Как мне масштабировать вывод рисунка matplotlib в формат A3?

#python #matplotlib

#python #matplotlib

Вопрос:

У меня есть график узла networkx, который выводится / сохраняется в PDF / PNG / SVG по моему выбору, но проблема в том, что когда я запускаю код, график получается очень квадратным и центральным и плохо вписывается в стороны холста.

Результатом является распечатка формата A3, которая небольшая и занимает много места вокруг графика.

Вот код:

 plt_k.figure(figsize=(30,30))
plt_k.axis('off')
...
plt_k.savefig('./pdf_output/test.pdf', orientation='landscape', papertype='a3', format='pdf', dpi=400)
  

Я создаю spring_layout график типа, который меняет форму каждый раз, когда я выполняю код. Я обнаружил, что если я использую размер figsize меньший, чем (30,30) , вывод графика обрезается.

Как я могу улучшить вывод графика таким образом, чтобы график заполнял страницу?

Комментарии:

1. График квадратный, потому что вы сказали ему сделать график размером 30×30 дюймов. Если вы хотите формат A3 в альбомной ориентации, тогда попробуйте figsize=(16.53, 11.69) . Что касается любого кадрирования, это трудно понять без примера того, что вы пытаетесь отобразить. По умолчанию Matplotlib обрезает только то, что находится за пределами осей.

2. @JodyKlymak -ХОРОШО. Если figsize=(16.53, 11.69) это холст, но matplotlib обрезает график вне осей, это говорит о том, что существуют другие инструкции для принудительного размещения графика внутри размера canvas или, по крайней мере, для того, чтобы оси масштабировались так же, как холст, правильно?

3. Оси по умолчанию расположены между 0,1 и 0,95 ширины рисунка и 0,1 и 0,9 высоты рисунка, если я правильно помню. Вы можете изменить это с помощью ax.set_position.