У меня проблемы с получением команд \phantom
и \quad
LaTeX для работы в метке легенды в matplotlib
.
В идеале я хотел бы «ПРЕД. <15% 'для выравнивания с надписью ниже, чтобы "PREV." расстановка. Я могу сделать это в документе LaTeX, используя команды <code>\phantom или \quad
. Однако следующий код создает изображение, показанное выше, и я не могу понять, почему эти команды не имеют никакого эффекта.
import matplotlib
matplotlib.rcParams['hatch.color'] = '#787878'
import matplotlib.pyplot as plt
from matplotlib.patches import Patch
CB = {'OrRd': ['#fef0d9', '#fdcc8a', '#fc8d59', '#e34a33', '#b30000']}
# Plot legend
legend_labels = [r'$\phantom{LONG TEST PHRASE} \textsc{Prev.} < %i\%%$' % (15),
r'$%i\%% \leq \textsc{Prev.} < %i\%%$' % (15, 25),
r'$%i\%% \leq \textsc{Prev.} < %i\%%$' % (25, 35),
r'$%i\%% \leq \textsc{Prev.} < %i\%%$' % (35, 45),
r'$%i\%% \leq \textsc{Prev.}$' % (45)]
legend_elements = [Patch(facecolor='#86838C', label='$\\textsc{N} < 20$',)] \
+ [Patch(facecolor='#ffffff', hatch='//', label='$20 \\leq \\textsc{N} \\leq 50$')] \
+ [Patch(facecolor=color, label=label) for color, label in zip(CB['OrRd'], legend_labels)]
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
leg = plt.legend(handles=legend_elements, loc=2, fontsize=21,
frameon=False,
title=r'\textsc{LEGEND}', title_fontsize=24)
plt.show()