plsql解决中文乱码问题,matplotlib 中文乱码

  plsql解决中文乱码问题,matplotlib 中文乱码

  最近手头有公司的数据资源,正好用来练习matplotlib的绘图。期间碰到一个坑,就是图表显示的汉字都是方框。下面文章主要介绍Matplotlib中文乱码的两个详细解决方案。有需要的可以参考一下。

  00-1010前言Matplotlib中文乱码重写概要文件修改概要文件摘要

  

目录

 

  Matplotlib默认不支持中文字体,因为Matplotlib只支持ASCII字符,但是中文标注更符合中文阅读习惯。因此,本节重点介绍如何让Matplotlib在Windows环境下显示中文。

  

前言

 

  当没有设置Matplotlib,而是直接使用中文时,绘制的图像会出现中文乱码。以下是中文乱码折线图:

  从上图可以看出,原本应该显示在红框中的中文字体没有显示出来(红框是自己标注的)。这里有两个解决办法:第一个是治标,第二个是一劳永逸。

  

Matplotlib中文乱码

 

  通过临时重写配置文件,可以解决Matplotlib显示中文乱码的问题。代码如下:

  将matplotlib.pyplot作为plt导入

  PLT . RC params[ font . sans-serif ]=[ sim hei ]#设置字体

  PLT . RC params[ axes . unicode _ MINUS ]=false #该语句解决了图像中“-”负号的乱码问题。

  将上述代码添加到您的绘图程序中,以解决中文乱码问题。这是一个非常灵活和方便的解决方案。完整的程序代码如下:

  #画一个折线图

  将matplotlib.pyplot作为plt导入

  PLT . RC params[ font . sans-serif ]=[ sim hei ]#设置字体

  PLT . RC params[ axes . unicode _ MINUS ]=false #负号正常显示

  年份=[2017,2018,2019,2020]

  人们=[20,40,60,70]

  #生成图表

  plt.plot(年,人)

  Plt.xlabel(年)

  Plt.ylabel(人口)

  Plt.title(“人口增长”)

  #设置纵坐标刻度

  plt.yticks([0,20,40,60,80])

  #设置填充选项:参数分别对应横坐标、纵坐标、纵坐标填充初始值和填充颜色。

  plt.fill_between(年,人,20,color=green )

  #显示图表

  plt.show()

  输出结果如下:

  然而,上述解决方案适用于所有操作系统,唯一的缺点是每次编写绘图程序时都必须添加相同的代码。

  

重写配置文件

 

  下面是第二种方法:直接修改配置文件,就可以一劳永逸地解决Matplotlib的中文乱码问题。注意,这个过程是在Windows环境下进行的。

  Matplotlib从配置文件matplotlibrc中读取相关配置信息,如字体、样式等。所以我们需要更改这个配置文件。首先检查matplotlibrc所在的目录,使用下面的代码确定目录位置:

  导入matplotlib

  matplotlib.matplotlib_fname()

  输出结果:

  d : python python 37 lib site-packages matplotlib mpl-data matplotlibrc

  然后修改配置文件matplotlibrc。打开配置文件后,找到以下信息:

  #font.family:无衬线字体

  #font.serif: DejaVu serif,Bitstream Vera Serif,Computer Modern Roman,New Century Schoolbook,Century Schoolbook L,Utopia,ITC Bookman,Bookman,Nimbus Roman No9 L,Times New Roman,Times,Palatino,Charter,Serif

  去掉以上配置项前面的#并修改的配置项,如下图所示:

  :微软雅黑,无衬线

  font.serif:微软雅黑、德加武serif、比特流Vera Serif、计算机现代罗马、新世纪教科书、世纪教科书L、乌托邦、ITC Bookman、Bookman、雨云罗马No9 L、泰晤士报新罗马、泰晤士报、帕拉蒂诺、宪章、Serif

  注意,由于版本问题,以上内容配置信息可能会有一些差异,请自动忽略。

  最后,将中文字体微软雅荷复制到以下目录中:

  c : Windows Fonts Microsoft YaHei UI

  复制后,将字体粘贴到以下路径文件中:

  d : python python 37 lib site-packages matplotlib mpl-data fonts TTF

  粘贴字体后,会出现一个MSYH.ttc的字体文件,如下图:

  编写以下测试代码:

  将matplotlib.pyplot作为plt导入

  将numpy作为np导入

  x=np.linspace(-8,8,1024)

  y1=0.618 * NP . ABS(x)-0.8 * NP . sqrt(64-x * * 2)

  y2=0.618 * NP . ABS(x)0.8 * NP . sqrt(64-x * * 2)

  plt.plot(x,y1,color=r )

  plt.plot(x,y2,color=r )

  Plt.title (test ,fontsize=20,color=b )

  plt.show()

  如果你对自己的程序没有很强的“洁癖”,可以接受重复代码,那么我建议你选择第一种方案,因为它灵活轻便。当然,你也可以选择第二种方式,一劳永逸地解决中文乱码问题。

  

修改配置文件

 

  关于Matplotlib中中文乱码的两个详细解决方案的文章到此为止。更多Matplotlib中文乱码的相关解决方案,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: