Объединение стилей
Я думаю, что наиболее элегантным является объединение стилей .
Например, вы можете определить свои собственные настройки шрифта в mystyle.mplstyle
(см. Ниже, где его сохранить и как он может выглядеть).Чтобы получить стиль ggplot
с вашими собственными настройками шрифта, вам нужно будет только указать:
plt.style.use(['ggplot', 'mystyle'])
Это решение элегантно, потому что оно обеспечивает единообразное применение на всех ваших графиках и позволяет смешивать и-match.
Где сохранить свой собственный стиль?
Взятый из одного из моих собственных стилей mystyle.mplstyle
может содержать следующие записи (вы должны явно настроить их в соответствии с вашими потребностями):
font.family : serif
font.serif : CMU Serif
font.weight : bold
font.size : 18
text.usetex : true
Который вы должны сохранить в директории конфигурации matplotlib.Для меня это ~/.matplotlib/stylelib/
, но используйте
import matplotlib
matplotlib.get_configdir()
, чтобы узнать, что использовать в вашей операционной системе.См. документацию .Вы также можете написать функцию Python для установки в нужном месте.
Где найти существующие стили?
Тогда заключительная часть вашего вопроса.Во-первых, полезно знать, что вы можете получить список доступных стилей, используя
import matplotlib.pyplot as plt
plt.style.available
См. документацию для графического представления.
Как проверить например ggplot.mplstyle
?Я думаю, что лучшая ссылка в источнике matplotlib .Вы также можете найти файлы *.mplstyle
в своей системе.Где, однако, зависит от вашей операционной системы и установки.Для меня
find / -iname 'ggplot.mplstyle' 2>/dev/null
дает
/usr/local/lib/python3.7/site-packages/matplotlib/mpl-data/stylelib/ggplot.mplstyle
Или, в более общем смысле, вы можете искать все стили:
find / -iname '*.mplstyle' 2>/dev/null
Для Windows я не совсемэксперт, но, возможно, пути к файлам, которые были перечислены выше, дают вам подсказку, где искать.
Python-скрипт для установки стиля в нужном месте
Чтобы установить ваши собственные стили вВ правильном месте вы можете создать скрипт, который будет выглядеть примерно так:
def copy_style():
import os
import matplotlib
# style definition(s)
styles = {}
styles['mystyle.mplstyle'] = '''
font.family : serif
'''
# write style definitions
# directory name where the styles are stored
dirname = os.path.abspath(os.path.join(matplotlib.get_configdir(), 'stylelib'))
# make directory if it does not yet exist
if not os.path.isdir(dirname): os.makedirs(dirname)
# write all styles
for fname, style in styles.items():
open(os.path.join(dirname, fname),'w').write(style)