Шрифт форматирования метки matplotlib изменен - PullRequest
0 голосов
/ 08 сентября 2018

Я использую matplotlib для создания графиков анализа данных, которые я затем показываю людям на конференциях, в публикациях и т. Д. Обычно я храню все данные и сценарии, которые генерируют каждый интересный / полезный график, на всякий случай, когда мне нужно обновить графики в какой-то момент после их создания. Вот пример моего стандартного блока кода, который генерирует следующий график:

# In[Imports]:
import pandas, matplotlib, matplotlib.pyplot

# In[Plot formatting]:
ticksFontSize = 18
labelsFontSize = 30
legendFontSize = 16
cm=matplotlib.pyplot.cm.get_cmap('viridis')
matplotlib.rc('xtick', labelsize=ticksFontSize)
matplotlib.rc('ytick', labelsize=ticksFontSize)

# In[Read the data]:
# CDF of TLE update frequenies
dfGood=pandas.read_csv('blue.csv',sep=',',header=None)
epochsGood=dfGood[0].values
cdfsGood=dfGood[1].values

# In[Plot the data]:
fig,ax=matplotlib.pyplot.subplots(1,1,sharex=True,figsize=(14,8))
ax.scatter(epochsGood,cdfsGood,c='indigo',marker='o',lw=0,s=30)
ax.set_xlabel(r"$TLE\ update\ frequency\ (orbital\ periods)$",
    size=labelsFontSize)
ax.set_ylabel(r"$Cumulative\ Distribution\ Function\ (-)$",
    fontsize=labelsFontSize)
ax.grid(linewidth=1)    
ax.tick_params(axis='both',reset=False,which='both',
    length=5,width=1.5)
ax.tick_params(axis='x', which='major', pad=15)
ax.set_xlim(0,5)
ax.set_ylim(0,1.1)
matplotlib.pyplot.subplots_adjust(left=0.1,right=0.95,
    bottom=0.15,top=0.9)
fig.show()

Old matplotlib

Недавно (в течение последних нескольких месяцев, но это могло быть запоздалое обновление ...), я обновил matplotlib, и вышеприведенный скрипт начал генерировать график в другом формате:

New matplotlib

Обрезанная ось Y не важна, я могу просто жить этим и настраивать график / ось. Я немного озадачен измененным шрифтом. Похоже, что когда-то во время обновления matplotlib файл matplotlibrc изменился. Я могу жить с этим и явно устанавливать свойства matplotlibrc в своих сценариях или устанавливать свойства текста метки для каждой метки, как показано в в этом ответе . Но я понятия не имею, как вернуться к предыдущему форматированию , т. Е. Какие свойства текста установить. Есть идеи?

Полезная информация

  1. Текущая версия Python = 3.5.4
  2. Python-версия, которую я использовал для генерации "старого сюжета" = 3.5.something
  3. Текущая matplotlib версия = 2.2.2
  4. matplotlib версия, которую я использовал для создания "старого сюжета" = Хотел бы я знать ...

1 Ответ

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

Математический шрифт по умолчанию изменен в версии 2.x с "Computer Modern" на "DejaVu Sans" .Вы можете изменить его в своем скрипте, как указано в документации, к предыдущей версии:

from matplotlib import pyplot as plt

plt.rcParams['mathtext.fontset'] = 'cm'
plt.rcParams['mathtext.rm'] = 'serif'

Пример вывода (без ваших данных, поскольку ваш вопрос не содержит MCVE ): enter image description here

...