广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何彻底解决Python中matplotlib不显示中文的问题详解(显示方框)
  • 272
分享到

如何彻底解决Python中matplotlib不显示中文的问题详解(显示方框)

2024-04-02 19:04:59 272人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言方法一:方法二:总结前言 在很长一段时间里用python绘图,matplotlib都不能很好的显示中文,起初是认为我的PyCharm里的设置问题,但是发现同样的问题在spyd

前言

在很长一段时间里用python绘图,matplotlib都不能很好的显示中文,起初是认为我的PyCharm里的设置问题,但是发现同样的问题在spyder里也同样的出现了,虽然有的地方可以用英文实在不行用拼音。。。但是在作图这里没有中文真的是太不方便了,机缘巧合下在年前终于找到问题的根源了,于是乎爱刨根问底儿的我把整个过程的解决方法分享给大家~~

一共有两种解决方案,我强烈推荐第一种,因为更为方便,绘图时不用再写别的参数,调用一次即可,第二种方法也会写出来但是更多的是作为了解,主要因为相比之下太麻烦

方法一:

示例:绘制每月的商品数量

  • X轴月份显示为中文
  • 增加X轴Y轴中文,图标标题
from matplotlib import pyplot as plt
a = ["一月份","二月份","三月份","四月份","五月份","六月份"]
b=[56.01,26.94,17.53,16.49,15.45,12.96]
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(a)),b)

#绘制x轴
plt.xticks(range(len(a)),a)
plt.xlabel("月份")
plt.ylabel("数量")
plt.title("每月数量")
plt.show()

不出意外绘制出来的图是这样的。。。。。

绘制出来的图片,在所有应该显示为中文的地方均显示乱码

之前一直以为是系统中字符集支持的问题,其实并不是这样,根本原因是matplotlib内置的原因,直到我知道了matplotlib.rc这个方法,其实这个我也不太会用,那么我们看一下这个的源码写的是该如何使用(学会看源码真的很重要!!)

首先它肯定是能设置字体和颜色的,有关字体我们怎么设置呢?我们接着往下看

有关字体的设置找到了,可以接收为字典,它利用了**font接收了一下字典,其实我们我们完全可以一行搞定,当然我更喜欢横着写,例如下面这样其实也是OK的~~

matplotlib.rc("font",family='MicroSoft YaHei',weight="bold")

那么我们加入这行代码在跑一下试试

果不其然产生了一个报错,那么我们为什么把MicroSoft YaHei(这个不就是微软雅黑吗,电脑里都有啊)这个加进去会报错呢?

重点来了

其实报错只有一个原因就是他没有这个字体,虽然电脑里有这个字体但是不代表matplotlib里也有这个字体,所以解决matplotlib中的中文显示问题主要就是要找到它所内置支持的字体,那么我们首先查看一下它的内置字体,运行以下代码查看所支持的字体

# 查询当前系统所有字体
from matplotlib.font_manager import FontManager
import subprocess
mpl_fonts = set(f.name for f in FontManager().ttflist)
print('all font list get from matplotlib.font_manager:')
for f in sorted(mpl_fonts):
    print('\t' + f)

运行后他会显示出所有支持的字体,大约100多种。。。。具体的我就不一一列举了

但是你会发现这个都是英文字体啊,中文字体在哪里,其实我当时也非常困扰,但是细心的我发现了其中的奥秘,>>>其实他是有中文的只不过是用拼音写的....<<<

其中你会发现有如下字体:

  • DengXian
  • FangSong
  • KaiTi
  • LiSu
  • YouYuan
  • Adobe Fan Heiti Std
  • Adobe Fangsong Std
  • Adobe Heiti Std
  • Adobe Kaiti Std

其实这些都是中文啊啊啊啊啊啊~~~~激动的我把代码增加一行再试试,随便选了个字体

from matplotlib import pyplot as plt
#新增加的两行
import matplotlib
matplotlib.rc("font",family='YouYuan')

a = ["一月份","二月份","三月份","四月份","五月份","六月份"]
b=[56.01,26.94,17.53,16.49,15.45,12.96]
plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(a)),b)

#绘制x轴
plt.xticks(range(len(a)),a)
plt.xlabel("月份")
plt.ylabel("数量")
plt.title("每月数量")
plt.show()

完美支持,也就是增加了两行代码就解决了中文的显示问题,归根到底还是很多没没有找到matplotlib所支持的内置字体方法,或是找到了不知道怎么用

方法二:

找到字体的所在路径

from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")

但是他有一个弊端就是在每个图上都需要在多家个参数调用才行,否则的话就会显示不出来

plt.xticks(range(len(a)),a,fontproperties=my_font)

plt.xlabel("月份",fontproperties=my_font)
plt.ylabel("数量",fontproperties=my_font)
plt.title("每月数量",fontproperties=my_font)

总结

到此这篇关于如何彻底解决Python中matplotlib不显示中文问题的文章就介绍到这了,更多相关Python matplotlib不显示中文内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何彻底解决Python中matplotlib不显示中文的问题详解(显示方框)

本文链接: https://www.lsjlt.com/news/117567.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何彻底解决Python中matplotlib不显示中文的问题详解(显示方框)
    目录前言方法一:方法二:总结前言 在很长一段时间里用Python绘图,matplotlib都不能很好的显示中文,起初是认为我的pycharm里的设置问题,但是发现同样的问题在spyd...
    99+
    2022-11-10
  • 彻底解决python中jupyter画图matplotlib的中文显示问题。Mac版本和Windows版本
    jupyter使用matplotlib进行画图会面临中文无法显示的问题,导致这样的原因是没有配置对应的中文字体,所以无法在画图时显示中文。 Windows版本解决方法 在Window中,采用以下代码 import matplotlib.py...
    99+
    2023-09-27
    matplotlib jupyter macos windows
  • 如何解决pycharm中用matplotlib画图不显示中文的问题
    前言: 其实很简单!举一个简单的例子! 这是一个简单的显示时刻的温度折线图: from matplotlib import pyplot as plt, font_manager i...
    99+
    2022-11-11
  • Python用matplotlib库画图中文和负号显示为方框的问题解决
    目录前言解决办法程序测试总结 解决Python中matplotlib 库画图中文和负号显示为方框的问题 注意: ​ 语言版本:Python 3.10.4 ​ 编译器版本:P...
    99+
    2022-11-11
  • python画图中文不显示问题的解决方法
    目录前言一、plt.title中文显示的解决:二、plt.plot中文显示的解决:三、供参考代码总结前言 python画图,如果用英文显示基本没有问题,但是中文可能会有乱码或者不显示...
    99+
    2022-11-11
  • 如何解决Mysql不能显示中文的问题
    本篇内容主要讲解“如何解决Mysql不能显示中文的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决Mysql不能显示中文的问题”吧!Mysql不能显示...
    99+
    2022-10-18
  • MySQL不能显示中文问题及解决
    目录MySQL不显示中文无效方法1  有效方法2MySQL字符集问题1.MySQL默认字符集2.查看默认字符集(默认情况下,mysql的字符集是latin1(IS...
    99+
    2022-11-13
  • MySQL不能显示中文问题怎么解决
    这篇“MySQL不能显示中文问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL不能显示中文问题怎么解决”文...
    99+
    2023-06-30
  • JSP显示中文问题的解决方案(转)
    JSP显示中文问题的解决方案(转)[@more@]这两天在win98下装apache1.3.9加jserv和gnujsp1.0,jdk1.2.2,jsdk2.0 发现中文无法正常显示。要么乱码,要么出错。 经网友提醒,总结了以下几条方法。 ...
    99+
    2023-06-03
  • HTML显示中文乱码问题的解决方法
    在使用HTML编写网页或者文章时,很多人都会遇到显示中文乱码的问题。这种问题主要是由于编码格式不对或者字库缺失导致的。如果没有解决这个问题,就会导致网页在不同的浏览器上显示的效果不同,影响网站的美观度和用户的体验。这篇文章将介绍HTML显示...
    99+
    2023-05-14
  • plt.title()中文无法显示的问题解决
    目录问题描述解决办法plt.title()函数参数说明bbox给标题增加外框 ,常用参数如下:问题描述 由于画图时plt.title()默认是显示英文,如果我们设置标题为中文,会无法...
    99+
    2023-05-17
    plt.title()中文无法显示 plt.title()中文显示
  • 怎么解决Jupyter Notebook中文不能显示的问题
    小编给大家分享一下怎么解决Jupyter Notebook中文不能显示的问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、为什么不显示中文:Matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字。图片显...
    99+
    2023-06-14
  • 如何解决win10系统不显示文字的问题
    这篇文章主要为大家展示了“如何解决win10系统不显示文字的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决win10系统不显示文字的问题”这篇文章吧。方法一:一、按win+r组合键唤...
    99+
    2023-06-28
  • php标题显示中文乱码问题如何解决
    本篇内容介绍了“php标题显示中文乱码问题如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php标题显示中文乱码的解决办法:1、在HT...
    99+
    2023-06-20
  • vuepdf二次封装解决无法显示中文问题方法详解
    目录前言完整代码解决无法显示中文问题前言 vue-pdf 可以实现PDF文件在线预览并且支持分页。安装方式:npm install --save vue-pdf 完整代码 <...
    99+
    2023-01-16
    vue pdf二次封装 vue pdf封装中文显示 vue pdf中文无法显示解决
  • word文档中分数的显示问题如何解决
    要解决Word文档中分数的显示问题,可以尝试以下几种方法:1. 使用分数格式:在Word文档中,可以选择使用分数格式来显示分数。在输...
    99+
    2023-10-07
    word
  • 如何解决MySql控制台中文显示的问题
    这篇文章主要为大家展示了“如何解决MySql控制台中文显示的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决MySql控制台中文显示的问题”这篇文章吧...
    99+
    2022-10-19
  • mysql中的中文不能显示的解决方法
    这篇文章将为大家详细讲解有关mysql中的中文不能显示的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql中的中文不能显示的解决办法:1、找到mysql的配...
    99+
    2022-10-18
  • 两行代码解决Jupyter Notebook中文不能显示的问题
    1、为什么不显示中文: Matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字。 图片显示情况: 2、解决方案: 在代码块加上这两行代码: plt.rcPara...
    99+
    2022-11-12
  • Python利用Matplotlib绘图无法显示中文字体的解决方案
    目录发现问题解决方式:总结发现问题 我在利用Pycharm中的matplotlib库进行绘图的时候,出现了一个问题,当我将所绘的图的横,纵坐标,希望加上一个中文描述的时候,比如,&#...
    99+
    2022-11-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作