Как установить вес шрифта по умолчанию для ярлыков x & y с помощью matplotlib - PullRequest
1 голос
/ 27 марта 2019

Используя matplotlib 3.0.1, мне нужно было сделать рисунок, на котором весь текст должен был быть в Open Sans Light. Поскольку рисунок довольно сложный, с несколькими панелями и т. Д., Я хотел настроить его, используя matplotlib.pyplot.rc (..), чтобы определить шрифт по умолчанию и вес шрифта для всех элементов рисунка.

Код ниже предоставляет минимальный пример. Поскольку не у всех может быть установлен Open Sans, здесь я использую шрифт по умолчанию и жирный шрифт вместо светлого, чтобы сделать его более общим. Поэтому я устанавливаю вес и размер шрифта по умолчанию, а затем строю базовую ось с метками x и y и дополнительным текстом.

import matplotlib.pyplot as plt

plt.style.use('default')

plt.rc('font', weight='bold', size=15)

fig, ax = plt.subplots(num=1, clear=True)

ax.set(xlabel='x-label', ylabel='y-label')
ax.text(0.2,0.4,'Text')

Я ожидаю, что все биты текста будут выделены жирным шрифтом. Метки галочек и лишний бит текста есть, а метки x и y - нет. Они в нормальном весе. Снимок экрана здесь.

Кажется, метки x и y получают имя и размер шрифта по умолчанию, но не вес по умолчанию.

В качестве обходного пути я попытался установить вес шрифта по умолчанию в опциях 'axes', но это не представляется возможным. «axes.labelsize» влияет на размер шрифта меток x, y, но нельзя отдельно указать вес шрифта.

Таким образом, кажется, что размер шрифта наследуется надписями x и y, если иное не указано в axes.labelsize, но вес шрифта не наследуется надписями и не может быть задан по умолчанию для осей. Обратите внимание, что имя шрифта ведет себя по-другому. Он наследуется метками x, y, но не может иметь другое значение по умолчанию в опции «оси».

Есть логика или это ошибка?

Есть ли решение для этого? Или мне нужно напрямую установить вес шрифта для объектов x-label и y-label?

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