Я пытаюсь построить коллекцию графиков с помощью matplotlib.Вывод, который я получаю, не соответствует ожиданиям.Я пытаюсь найти способ исправить это.Мои проблемы
1) На графике печатается символ \ перед символом # в заголовке X.Если я опускаю '\', я получаю сообщение об ошибке, говорящее: "Вы не можете использовать` параметр макроса символа # 'в вертикальном режиме "
2), тиковые метки не отформатированы одинаково.Верхние левые метки отформатированы в формате tex с хорошо отделенными от оси Y, тогда как нижние левые метки не отформатированы в формате tex и метки галочек касаются оси.Как заставить нижние метки вести себя так же, как верхние?
3) Наконец, как я могу получить только шрифты типа 1 в созданном PDF-файле?Прямо сейчас это выглядит следующим образом
имя типа
DejaVuSans Type 3
CMSS12 Тип 1
CMSS10 Тип 1
Мой код указан ниже.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import rc
filename = 'eg.pdf'
fig, ax1 = plt.subplots(frameon=False)
rc('mathtext', default='regular')
rc('lines',lw=1.6)
rc('lines',mew=1.4)
rc('text', usetex=True)
x = np.array([10,20,30,40])
risk_ndcg = np.array([2.44,3.46,4.16,5.84])
sqrt_ndcg = np.array([2.30,3.05,4.56,5.20])
mod_ndcg = np.array([2.66,3.43,4.91,5.49])
mf_ndcg = np.array([2.20,3.55,4.04,5.37])
lns1 = ax1.plot(x,sqrt_ndcg,':', markersize=3.5, label='XX');
lns2 = ax1.plot(x,mod_ndcg,'-.', markersize=3.5, label='XY');
lns3 = ax1.plot(x,mf_ndcg,'--',markersize=3.5, label='XZ');
lns4 = ax1.plot(x,risk_ndcg,'-',markersize=3.5, label='ZZ');
ax1.set_ylabel(r'ACC',size=13);
ax1.set_ylim([2,6]);
ax1.set_xlim([0,42]);
ax1.set_xticks(x);
ax1.tick_params(axis='y', which=u'both', length=0, labelsize=12);
ax1.tick_params(axis='x', which=u'both', length=0, labelsize=12);
lns = lns1 + lns2 + lns3 + lns4;
labs = [l.get_label() for l in lns];
ax1.set_xlabel(r'\# of points',size=13);
lgd = ax1.legend(lns, labs, bbox_to_anchor=(1.0,0.5),loc=0, ncol = 1, fontsize='11',shadow=True,fancybox=True);
fig.savefig(filename,format='pdf',transparent=True, bbox_extra_artists=(lgd,), bbox_inches='tight');
Мой токовый выход