Подтвердить что ты не робот

Предоставление графиков субтитров в matplotlib

Я хочу дать графику заголовок в большом шрифте 18pt, а затем под ним под ним меньший шрифт 10pt. Как я могу сделать это в matplotlib? Похоже, функция title() принимает только одну строку с единственным атрибутом fontsize. Должен быть способ сделать это, но как?

4b9b3361

Ответ 1

Я не думаю, что есть что-то встроенное, но вы можете сделать это, оставив больше пространства над вашими осями и используя figtext:

axes([.1,.1,.8,.7])
figtext(.5,.9,'Foo Bar', fontsize=18, ha='center')
figtext(.5,.85,'Lorem ipsum dolor sit amet, consectetur adipiscing elit',fontsize=10,ha='center')

ha не подходит для horizontalalignment.

Ответ 2

Я использую функцию title() для субтитров и suptitle() для основного заголовка (они могут принимать разные аргументы fontsize). Надеюсь, что это поможет!

Ответ 3

Хотя это не дает вам гибкости, связанной с несколькими размерами шрифтов, добавление символа новой строки в вашу строку pyplot.title() может быть простым решением;

plt.title('Really Important Plot\nThis is why it is important')

Ответ 4

Это пример кода pandas, который реализует ответ Floris van Vugt (20 декабря 2010 г.). Он сказал:

> Я использую функцию title() для субтитров и suptitle() для основного заголовка (они могут принимать разные аргументы fontsize). Надеюсь, что это поможет!

import pandas as pd
import matplotlib.pyplot as plt

d = {'series a' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
      'series b' : pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)

title_string = "This is the title"
subtitle_string = "This is the subtitle"

plt.figure()
df.plot(kind='bar')
plt.suptitle(title_string, y=1.05, fontsize=18)
plt.title(subtitle_string, fontsize=10)

Примечание. Я не могу прокомментировать этот ответ, потому что я новичок в stackoverflow.

Ответ 5

Просто используйте TeX! Это работает:

title(r"""\Huge{Big title !} \newline \tiny{Small subtitle !}""")

EDIT: Чтобы включить обработку TeX, вам нужно добавить строку "usetex = True" к параметрам matplotlib:

fig_size = [12.,7.5]
params = {'axes.labelsize': 8,
      'text.fontsize':   6,
      'legend.fontsize': 7,
      'xtick.labelsize': 6,
      'ytick.labelsize': 6,
      'text.usetex': True,       # <-- There 
      'figure.figsize': fig_size,
      }
rcParams.update(params)

Думаю, вам также нужен рабочий дистрибутив TeX на вашем компьютере. Все данные приведены на этой странице:

http://matplotlib.org/users/usetex.html