问题描述:在python编程中,用matplotlib库画图的时候,坐标轴或标题中的中文显示为一些矩形框框,不能正常显示,如下图所示:
不能正常显示中文的结果图
要解决这个问题,需要在matplotlib库的配置文件中进行一些设置。以下是常见的解决方法:
1. 在程序导入库之后添加设置字体的代码。
将pltrcParams['fontsans-serif']和pltrcParams['fontserif']中的字体改为系统自带的中文字体,例如SimHei和KaiTi。这种方法需要在新的编译环境上重新修改配置文件,虽然麻烦一点,但在代码中修改可以保持一致性。请注意,在设置中文字体时,必须确保系统中安装了相应的中文字体。
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['kaiti']2 此外,还有一种终极法可以解决这个问题。这种方法最简单且一劳永逸,值得收藏。具体的方法是,通过导入FontProperties和字体文件路径,或者仅支持ttf格式的字体,来设置全局字体。请根据您的实际需求选择合适的解决方案。以下是具体的设置方法:
2.1. 修改matplotlib配置文件
打开matplotlib的配置文件,一般位于```pythonpath/site-packages/matplotlib/mpl-data/matplotlibrc```中,使用Notepad++等编辑器打开。在文件中找到```axes.unicode_minus```这一项,将其值由原来的True改为False,并将#号去掉。这一项控制负号是否被显示为方块。
2.2. 修改字体
找到pltrcParams['fontsans-serif']和pltrcParams['fontserif']这两项,将其值改为系统自带的中文字体。例如,如果是Windows系统,可以设置为```SimHei```和```KaiTi```。如果是Linux系统,可以设置为```font-family: "Hiragino Sans", "Hiragino Sans GB", "Microsoft YaHei", "Microsoft YaHei UI", "Microsoft JhengHei", "Microsoft JhengHei UI", "WenQuanYi Micro Hei", "WenQuanYi Micro Hei Light", "WenQuanYi Micro Hei Semilight", "WenQuanYi Micro Hei Regular", "WenQuanYi Micro Hei Medium"``。请注意,在设置中文字体时,必须确保系统中安装了相应的中文字体。
2.3. 设置全局字体
在matplotlib的根目录下,新建一个文件```matplotlib_setup.py```,并在其中添加以下代码:
import matplotlib as mplmpl.rcParams['font.family'] = ['SimHei']这一步的目的是设置matplotlib的全局字体,确保所有的图像都能正确显示中文。请根据您的实际需求,在这一行代码中设置其它中文字体,或者导入FontProperties和字体文件路径,或者仅支持ttf格式的字体。
使用以上方法中的任意一种,都可以解决matplotlib中中文显示为矩形块的问题。请根据您的实际需求选择合适的解决方案。