例如,当我尝试运行时:

mpl.rcParams['font.family'] = 'serif'
plt.rcParams['figure.figsize'] = [15,7]
plt.plot(data['flow-time'], data['staticpressurerecovery'])
plt.xlabel('Time [s]')
plt.ylabel('Static Pressure Recovery [-]')
plt.title('McD13_4S3 Plenum: Performance Coefficient ')
plt.ylim((0.33, 0.4))
plt.grid()
plt.show()

在Jupyter笔记本中,我收到以下错误消息:
C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\font_manager.py:1331: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))

我尝试过的事情:
  • 删除fontList.cachefontList.jsonfontList.py3.cache
  • 取消注释matplotlibrc文件
  • 的字体系列相关部分
  • 使用matplotlibpip uninstall matplotlib卸载并重新安装了pip install matplotlib

  • 没有任何办法解决这个问题。现在我获取不同字体的唯一可能方法是使用LaTeX作为后端,但这是缓慢且不必要的。

    有什么想法我接下来可以尝试吗?

    编辑:我正在使用Windows 10,所以不为我使用apt-get。这似乎是解决这些问题的常用方法,但是我做不到。看来这些解决方案只是将Microsoft字体添加到Linux字体管理器中,所以由于我已经在Microsoft机器上,所以它甚至可能无关紧要。

    最低工作示例:
    import matplotlib.pyplot as plt
    import matplotlib as mpl
    import numpy as np
    
    mpl.rcParams['font.family'] = 'serif'
    mpl.rcParams['font.serif'] = 'Computer Modern'
    
    
    t = np.arange(0.0, 2.0, 0.01)
    s = 1 + np.sin(2*np.pi*t)
    plt.plot(t, s)
    plt.show()
    

    fontList.json中,Computer Modern被列为可用字体。

    最佳答案

    我遇到过同样的问题。对我来说,将我的matplotlib版本从改回1.5.3可以解决此问题。您需要先pip uninstall matplotlib然后pip install matplotlib==1.5.3

    更多上下文,我在带Amazon EC2的齐柏林飞艇笔记本上使用ggplot。安装的matplotlib版本以某种方式是2.2.3

    更改版本后,错误消失了

    关于python - Matplotlib报告找不到字体家族 'serif',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52320969/

    10-11 23:11
    查看更多