当前位置: 首页 > news >正文

【亲测】Linux 使用 Matplotlib 显示中文

文章目录

  • 安装中文字体
  • 在Matplotlib中使用该字体来显示中文

在 Linux 系统中使用 Matplotlib 绘制图表时,如果需要显示中文,可能会遇到中文字符显示为方块或者乱码的问题。这是因为Matplotlib 默认使用的字体不支持中文。本文手把手带你解决这个问题。

安装中文字体

要在Linux系统中安装simhei.ttf(黑体字体文件),你可以按照以下步骤操作:

  1. 下载字体文件:首先,你需要获取simhei.ttf文件。如果手头没有这个文件,可以从一个可信的来源下载。

  2. 创建字体目录(如果你还没有合适的目录):
    如果你希望为当前用户安装字体,可以在主目录下创建一个.fonts目录(如果它还不存在的话)。对于系统级别的安装,则需要将字体文件放置在系统的字体目录中,比如/usr/share/fonts/

    • 对于个人使用:

      mkdir -p ~/.fonts
      
    • 对于系统范围内使用(可能需要管理员权限):

      sudo mkdir -p /usr/share/fonts/truetype/simhei
      
  3. 复制字体文件

    • 对于个人使用,将simhei.ttf文件复制到~/.fonts/目录下:

      cp path/to/simhei.ttf ~/.fonts/
      
    • 对于系统范围使用,将simhei.ttf文件复制到创建的系统字体目录中(例如/usr/share/fonts/truetype/simhei/),这可能需要管理员权限:

      sudo cp path/to/simhei.ttf /usr/share/fonts/truetype/simhei/
      

      请确保替换path/to/simhei.ttf为你实际的simhei.ttf文件路径。

  4. 更新字体缓存
    安装完字体后,需要更新系统的字体缓存以使新字体生效。

    • 对于个人使用的字体:

      fc-cache -f -v ~/.fonts/
      
    • 对于系统范围的字体安装:

      sudo fc-cache -f -v
      
  5. 验证安装
    你可以通过列出所有已安装的中文支持字体来检查simhei是否已经成功安装并被识别:

    fc-list :lang=zh
    

    在输出列表中寻找包含“SimHei”或“黑体”的行,确认字体已正确安装。

完成这些步骤之后,你的系统就安装了simhei.ttf字体,并且可以在应用程序如Matplotlib中使用该字体显示中文。记得在Matplotlib中设置正确的字体名称(如SimHei)以便利用这个新安装的字体。

在Matplotlib中使用该字体来显示中文

安装完simhei.ttf字体并确保系统已更新字体缓存后,你可以在Matplotlib中使用该字体来显示中文。以下是具体的步骤和示例代码:

  1. 确认字体名称:在Linux系统中安装新字体之后,建议先确认一下字体的确切名称。可以通过以下命令查看:

    fc-list :lang=zh -f "%{family}\n"
    

    在输出中找到类似“SimHei”或“黑体”的条目。注意字体名称的准确拼写(包括大小写)。

  2. 修改Matplotlib配置以使用新字体:你可以通过几种方式来指定Matplotlib使用SimHei字体显示中文。

    • 临时设置:在脚本中直接设置字体属性,这适用于仅想在特定图表中使用中文的情况。

      import matplotlib.pyplot as plt
      from matplotlib.font_manager import FontProperties
      
      # 如果你知道字体的确切名称,可以直接在这里设置
      font = FontProperties(fname="/usr/share/fonts/truetype/simhei/simhei.ttf")  # 根据实际路径调整
      
      plt.title('这是一个测试标题', fontproperties=font)  # 标题使用中文
      plt.xlabel('X轴标签', fontproperties=font)          # X轴标签使用中文
      plt.ylabel('Y轴标签', fontproperties=font)          # Y轴标签使用中文
      plt.rcParams['axes.unicode_minus'] = False         # 正常显示负号
      
      plt.plot([0, 1, 2], [0, 1, 4])
      plt.show()
      
    • 全局设置:如果你想对所有的图表都应用相同的字体设置,可以修改matplotlib的配置文件(matplotlibrc)或者直接在代码中设置默认字体属性。

      import matplotlib.pyplot as plt
      
      plt.rcParams['font.family'] = 'SimHei'  # 假设"SimHei"是你的字体名称,请根据实际情况替换
      plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题
      
      plt.title('这是一个测试标题')  # 现在应该能正常显示中文了
      plt.xlabel('X轴标签')
      plt.ylabel('Y轴标签')
      
      plt.plot([0, 1, 2], [0, 1, 4])
      plt.show()
      

请确保根据你之前确认的字体名称调整上述代码中的font.familyFontProperties参数。如果你按照前面提到的方法正确安装了字体,并且提供了正确的字体路径或名称,那么现在你应该能够在Matplotlib图表中正常显示中文文本了。
在这里插入图片描述

相关文章:

  • Solidity入门实战—web3
  • 【Ansible自动化运维】一、初步了解,开启自动化运维之旅
  • STM32定时器完全指南:从基础原理到高级应用 | 零基础入门STM32第九十六步
  • 海外高防服务器延迟优化——跨国业务安全加速的底层逻辑
  • DIY AI ML:K-Means 算法
  • HTML静态网页成品作业(HTML+CSS)——阜阳剪纸介绍设计制作(1个页面)
  • R语言 | 2d概率密度分布图
  • 牛客 226303 【模板】差分
  • SPI通信
  • 重头学java cpu内存硬盘的关系
  • 深度集成学习不均衡样本图像分类
  • Java Functional Interface 函数式接口
  • 大文件断点续传
  • 011_异常、泛型和集合框架
  • 大数据(5)(基础概念)Spark从入门到实战:核心原理与大数据处理实战案例
  • 【算法】前缀和(下)
  • 【Django】教程-12-柱状图
  • 5.JVM-G1垃圾回收器
  • 顺序栈简记
  • 为什么选择Redis?解析核心使用场景与性能优化技巧
  • 电脑怎样做幻灯片的网站/百度健康
  • 南京微信网站建设/seo实战论坛
  • 做蛋糕的网站/网页设计与网站开发
  • 微信二维码网站制作/可免费投放广告的平台
  • 网站优化排名如何做/百度搜索网站排名
  • 佛山网站优化步骤/如何制作一个简易网站