Проблемы с Matplotlib и Tex при создании PDF-файлов - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь построить коллекцию графиков с помощью 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');

Мой токовый выход

1 Ответ

0 голосов
/ 20 сентября 2018

Это странно, потому что у меня нет такой же проблемы, как у вас.Вот мой вывод: https://ufile.io/b34e4

Я думаю, это то, что вы хотите.

Он был запущен с Python 2.7 и matplotlib 1.5.1.Что такое конфигурация?

...