matplotlib之Font family [‘sans-serif‘] not found的问题解决

yizhihongxing

确定问题:

在使用matplotlib绘图时,可能会遇到类似以下的报错:

findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans.

这个错误通常表示matplotlib无法找到所需的字体包,从而默认使用“DejaVu Sans”字体。

解决问题:

  1. 安装所需的字体包

在错误信息中提到的字体包为“sans-serif”,实际上就是喜欢使用无衬线字体的一组字体。matplotlib默认使用的是该组字体中的“DejaVu Sans”字体,因此我们可以通过安装完整的“sans-serif”字体包来解决问题。

具体步骤如下:

  • 执行以下命令:

sudo apt-get install fonts-liberation

或者执行以下命令:

sudo apt-get install fonts-noto

这两个命令分别安装了Google团队发布的Liberation字体和Noto Sans字体,都包含了“sans-serif”字体组中的字体。根据情况选择其中一个即可。

  1. 设置matplotlib字体

如果你不想安装完整的“sans-serif”字体包,或者安装后仍然遇到问题,这里提供另一种解决方法:手动设置matplotlib绘图时所使用的字体。

具体步骤如下:

  • 导入matplotlib库和rcParams:

```python
import matplotlib.pyplot as plt
import matplotlib

# 获取rcParams
rcParams = matplotlib.rcParams
```

  • 设置字体

设置字体需要修改rcParams中的“font.family”参数。如果要使用其他字体,请将“serif”、“sans-serif”、“cursive”和“fantasy”中的一个或多个赋值为该字体,使用逗号隔开。在这里,我们将“sans-serif”字体设置为“Liberation Sans”。

python
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Liberation Sans']

  • 绘图

完成了字体设置后,就可以绘制图形,测试字体是否正常显示了。

python
plt.plot([1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
plt.xlabel('x')
plt.ylabel('y')
plt.title('测试标题')
plt.show()

示例一:

我们使用以下代码进行测试:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
plt.xlabel('x')
plt.ylabel('y')
plt.title('测试标题')
plt.show()

得到以下报错信息:

findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans.

这是因为 matplotlib 默认使用了“sans-serif”字体组中的“DejaVu Sans”字体,但是该字体在本机上未安装,因此出现了报错。

为了解决这个问题,我们可以通过安装一个包含“sans-serif”字体组中字体的字体包(如 liberation-fonts)或手动设置字体来解决问题。

示例二:

假设我们想手动设置字体,我们可以使用以下代码进行测试:

import matplotlib.pyplot as plt
import matplotlib

rcParams = matplotlib.rcParams
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Liberation Sans']

plt.plot([1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
plt.xlabel('x')
plt.ylabel('y')
plt.title('测试标题')
plt.show()

在这个例子中,我们首先导入了matplotlib库和rcParams变量,然后手动设置字体参数,将“sans-serif”字体组设置为“Liberation Sans”。最后绘制了一个简单的图形,该图形用我们设置的字体呈现了标签和标题。这证明了我们的字体设置是有效的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:matplotlib之Font family [‘sans-serif‘] not found的问题解决 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 利用Python绘制MySQL数据图实现数据可视化

    我来为你详细讲解 “利用Python绘制MySQL数据图实现数据可视化”的攻略。 1. 确认环境 要实现这个目标,首先需要确保你的环境中已经包含了以下内容: 安装好了Python。 已安装好pip可以使用pip管理Python包。 已经安装了MySQL数据库。 2. 安装Python模块 在Python中有很多用于绘制数据图表的模块,常用的有matplotl…

    python 2023年5月14日
    00
  • 使用Python 自动生成 Word 文档的教程

    请您耐心阅读以下的教程,此教程分为以下几个部分: 介绍Python生成word文档的工具库 安装工具库 创建word文档 添加文本与表格 添加图片与图表 示例说明 总结 1. 介绍Python生成word文档的工具库 目前Python生态圈里提供了多种文档生成的工具库,常用的有:python-docx,python-docx-template和docxtpl…

    python 2023年5月19日
    00
  • 儿童编程python入门

    儿童编程Python入门攻略 简介 Python是一种易于学习的编程语言,对于儿童编程入门来说是非常适合的。本攻略将帮助您了解如何让儿童用Python编写简单的程序。 安装Python Python可以在Windows、Mac和Linux等操作系统上运行。要安装Python,请访问Python官方网站(https://www.python.org/),下载适…

    python 2023年5月31日
    00
  • 深入解析Python小白学习【操作列表】

    深入解析Python小白学习【操作列表】攻略 列表是Python中常用的数据类型之一,可以用来存储多个元素。本文将深入解Python小白学习【操作列表】的完整攻略,包括列表的定义、访问元素、切片、添加、删除、修改等操作。 列表的定义 列表是一种有序的可变序列可以存储任意类型的元素。列表的定义方式如下: lst = [element1, element2, .…

    python 2023年5月13日
    00
  • python实现将元祖转换成数组的方法

    下面是关于”python实现将元祖转换成数组的方法”的完整攻略。 方法一:使用内置函数list() Python的内置函数list()能将元组转换成列表,列表即为Python中的数组。使用方法如下: # 定义元组 tup = (1, 2, 3, 4, 5) # 使用list()函数转换为数组 arr = list(tup) # 输出转换后的数组 print(…

    python 2023年6月5日
    00
  • 使用Python实现火车票查询系统(带界面)

    使用Python实现火车票查询系统(带界面)攻略 1.需求分析 在开始编写代码前,我们需要对需求进行分析。在本次的火车票查询系统中,主要包含以下几个功能: 查询火车票信息 筛选火车票信息 订票 2.环境设置 在实现火车票查询系统前,我们需要对环境进行设置。通过以下步骤可以完成Python环境安装,以及Tkinter安装: 安装Python。从Python官网…

    python 2023年6月3日
    00
  • 利用Python发送 10 万个 http 请求

    以下是关于利用Python发送10万个HTTP请求的攻略: 利用Python发送10万个HTTP请求 在Python中,我们可以使用requests库来发送HTTP请求。以下是利用Python发送10万个HTTP请求的攻略: 发送GET请求 以下是使用requests发送GET请求的示例: import requests import time start_…

    python 2023年5月14日
    00
  • python 爬虫爬取京东ps4售卖情况

    爬取京东PS4售卖情况是一个常见的爬虫应用场景。以下是一个详细的攻略,包含了爬取京东PS4售卖情况的步骤和示例。 1. 安装必要的库 在开始之前,我们需要安装必要的库。可以使用以下命令安装: pip install requests pip install beautifulsoup4 2. 爬取京东PS4售卖情况 我们可以使用requests库和beaut…

    python 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部