我使用np.linspace
生成数据分析图,然后将其显示给会议,出版物等上的人。我通常会存储所有数据和脚本,以生成每个有趣/有用的图,以防万一我需要在创建图表后的某个时刻更新图表。这是我的盒式标准代码示例,可生成以下图表:
import scipy.interpolate as ip
import numpy as np
x = [-1.5, 2.23]
y = [0.1, -11]
x_new = np.linspace(start=x[0], stop=x[-1], num=10)
print(x_new)
y_new = np.linspace(start=y[0], stop=y[-1], num=10)
print(y_new)
f = ip.interp1d(x, y)
y_new2 = f(x_new)
print(y_new2) # y_new2 values always the same as y_new
最近(在过去的几个月内,但是可能是一个很长的更新...),我更新了matplotlib
,上面的脚本开始生成格式不同的图:
修剪的Y轴并不重要,我可以忍受它并调整图/轴。我有点困惑的是更改后的字体。在# 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()
更新期间,matplotlib
文件似乎已更改。我可以接受这一点,并在脚本中显式设置matplotlib
属性,或者按this answer所示按标签设置标签文本属性。但是我不知道如何返回以前的格式,即要设置哪些文本属性。有什么想法吗?
matplotlibrc
版本= 2.2.2 matplotlibrc
版本答案 0 :(得分:1)
默认的数学字体在版本2.x from "Computer Modern" to "DejaVu Sans"中已更改。您可以按照文档中提到的脚本将其更改回以前的版本:
from matplotlib import pyplot as plt
plt.rcParams['mathtext.fontset'] = 'cm'
plt.rcParams['mathtext.rm'] = 'serif'
示例输出(没有数据,因为您的问题不包含MCVE):