Почему фигура не создается, когда я использую фильтр Савицкого-Голея и matplotlib?

#python #matplotlib #scipy

#питон #matplotlib #сципи

Вопрос:

У меня была эта проблема в течение нескольких лет, но я никогда не пытался ее решить. Я использую python для обработки данных, и иногда я хочу использовать фильтр Савици-Голея, чтобы сгладить мои данные. В то же время я хочу отобразить эти результаты, и мне нравится использовать современный шрифт Latex computer для надписей на рисунках и т. Д. Проблема возникает, когда я одновременно использую фильтр Савици-Голея:

 from scipy.signal import savgol_filter y_filt = savgol_filter(y,51,2)  

и шрифт Latex:

 rc('font',**{'family':'serif','serif':['Helvetica']}) rc('text',usetex=True)  

Сценарий «зависает» , и сюжет не создается. Если я закомментирую rc('text',usetex=True) , скрипт запустится нормально, и рисунок будет создан; однако не в том стиле шрифта, который я хочу. Кроме того, если я закомментирую y_filt = savgol_filter(y,51,2) и оставлю rc('text',usetex=True) без комментариев (и использую другой алгоритм сглаживания данных), будет получена цифра. Наконец, сценарий работает нормально, если я не использую никаких команд построения. Ниже приведены команды построения, которые я обычно использую:

 from matplotlib import pyplot as plt from matplotlib import rc import matplotlib.gridspec as gridspec  rc('font',**{'family':'serif','serif':['Helvetica']}) rc('text',usetex=True)  figx = 2 figy = 4 fig = plt.figure() ax1 = plt.subplot2grid((1,1),(0,0)) ax1.plot(x,y_filt,color='k',lw=1) fig.set_size_inches(figx,figy) fig.savefig(dirFigs 'A1_extracted.pdf',dpi=600,bbox_inches='tight')  

Я в недоумении, почему скрипт зависает при использовании savgol_filter и rc. Я запускаю Python 3.8.3 через Anaconda на macOS 11.6.1.

Заранее спасибо.