Добавьте 2 основных заголовка к рисунку matplotlib с разными размерами шрифтов - PullRequest
0 голосов
/ 05 июля 2018

У меня фигура с 2-мя участками. Я хочу 2 основных заголовка для всей фигуры выше этих графиков с разными размерами шрифтов. Так что речь идет не о надписях над топором, а о части рисунка.

Я знаю, что могу добавить основной заголовок (suptitle) к фигуре, используя:

fig, ax = plt.subplots(1, 2, figsize=(20, 8))

fig.suptitle('This is my 1st main title', x=0.5, y=1.15, fontsize=18)

Но я хочу другое:

fig.suptitle('This is the second with other fontsize', x=0.5, y=0.98, fontsize=12)

Но это просто перезаписывает первое.

Как я могу получить два основных названия? (или 1 основное название и 1 подзаголовок)

Figure with one main title, how add a subtitle

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Самый простой способ - использовать функцию text(). Вы можете либо связать его с рисунком:

f.text(x=0.5, y=0.94, 'title', ha='center')

Вы можете использовать следующие простые аргументы:

rotation='vertical'
fontsize=10

Вы также можете связать заголовок с субплотом и использовать X, Y этого субплота для его позиционирования:

ax[0].text(0, 1.02, "title above the first subplot", fontsize=10, transform=ax[0].transAxes)

И, наконец, вам может понадобиться переопределить размер области построения. Это можно сделать с помощью:

for a in f.axes:
    # Shrink the axes
    box = a.get_position()
    a.set_position([box.x0, box.y0, box.width * 0.9, box.height * 0.95])
0 голосов
/ 05 июля 2018

Хорошо, я только что узнал, одно из возможных решений - не использовать fig.suptitle (), а использовать fig.text ():

fig.text(s='This is my 1st main title', x=0.5, y=1.00, fontsize=18, ha='center', va='center')
fig.text(s='This is my 2nd main title', x=0.5, y=0.95, fontsize=12, ha='center', va='center')

Этот пост указал мне правильное направление: Заголовок рисунка несколькими цветами в matplotlib

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