При использовании rc('text', usetex=True)
все выглядит очень хорошо (шрифт без засечек для меток и шрифт Computer Modern для уравнений в тексте меток), за исключением галочек.Тики написаны шрифтом Computer Modern, и я хотел бы иметь шрифт без засечек для тиков.
Одно из найденных решений - использовать mpl.rcParams['text.latex.preamble'] = [r'\usepackage{sansmath}', r'\sansmath']
.Это правильно поставить галочки в шрифте без засечек.Однако это также влияет на уравнения, которые я не хочу.
Второе решение - использовать ax.yaxis.get_major_formatter()._usetex = False
.Это правильно ставит галочки в шрифте без засечек и не влияет на уравнения.Однако, это не работает для оси масштаба журнала.Мне удалось решить эту проблему с помощью ax.yaxis.set_major_formatter(plt.FormatStrFormatter('%.e'))
.Однако галочки больше не отображаются в формате «10 ^ x».
#!/usr/bin/env python
# coding: utf8
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rc('text', usetex=True) # Let TeX do the typsetting
if False:
mpl.rcParams['text.latex.preamble'] = [r'\usepackage{sansmath}',
r'\sansmath']
# Data
a = np.arange(24).reshape(6,4)/1.
x = np.arange(7)
y = np.array((1, 10, 100, 1000, 10000))
# Figure
fig = plt.figure(figsize=(6, 3))
ax = plt.subplot(111)
pc = plt.pcolormesh(x, y, a.T, cmap=mpl.cm.viridis)
cbar = plt.colorbar()
plt.title(r"\textit{This} \underline{is the} \textbf{title}", fontsize=10)
plt.xlabel(r"This is the $x$ axis $D_x$ (\textmu m)", fontsize=9)
plt.ylabel(r"\textit{\underline{This}} is the $y$ axis $P_y$ (km)", fontsize=9)
cbar.set_label(label=r"Colorbar $R'_T=\frac{b}{a}$ (\%)", fontsize=9)
plt.text(2, 50, r'\textbf{Sample Text}', fontsize=20, color='w')
# Tick param
ax.set_yscale('log')
if True:
ax.xaxis.get_major_formatter()._usetex = False
ax.yaxis.get_major_formatter()._usetex = False
cbar.ax.yaxis.get_major_formatter()._usetex = False
if False:
ax.yaxis.set_major_formatter(plt.FormatStrFormatter('%.e'))
Полученное изображение из этого кода находится здесь: https://i.stack.imgur.com/hDowM.png
Существует ли гораздо более простой способ использованияШрифт Sans-Serif для галочек при использовании шрифта Computer Modern для уравнений в метке?