解决Linux系统中python matplotlib画图的三个问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Perfect_Accepted/article/details/81368749

在linux下使用matplotlib.pyplot画图时,遇到三个问题:①画出的图的中文显示问题②画出图显示不全(画布太小)③在画出的图上显示每个点的数值。

1.画出的图的中文显示问题

这个问题网上的方法基本都一致,就是修改matplotlibrc文件,大神写的很详细(注释1),就是有几个点需要补充一下:截图在下面,具体补充点为:

  • 在第一步,检测自己matplotlibrc文件所在位置,记住这个位置
  • 在第二步,这段代码用的是python2,如果自己是Python3,除了改print函数外,还需要添下面这一句output=output.decode()

  • 在第三步,我也是在网站http://font.chinaz.com/130130474870.htm下载的这个字体,解压到自己的路径下,这里需要注意的是解压完后看一下文件有没有损坏,大约8.9M左右。具体如何在linux下创建文件夹,复制文件自行百度。
  • 第四步,按列出的执行这几个命令
  • 第五步,我搜索matplotlibrc(此文件正常是没有修改权限的,自行百度如何更改权限),发现有三处font.family,只需要修改下面截图这处,同时看font.family的冒号后面的sans-serif,然后往下找到font.sans-serif,将注释去掉,并将前面的字体(我的是WenQuanYi Zen Hei Mono")加入到font.sans-serif冒号后面第一个位置(一定放在第一个位置,我试过放到最后,不起作用),对于axes.unicode_minus : False这句,我也改了。

  • 第六步,我在运行步骤2代码时,字体出现在“系统可用的中文字体”这一栏下,“可用的字体”这一栏也没有。
  • 删除cache时,我将整个matplotlib文件夹都删除了,后面再运行代码,它会再自动生成的。
  • 执行到这里,我运行代码,果然画出的图中中文显示了。

下面截图是大神的这个操作流程:(https://www.cnblogs.com/sunqifs/p/7011677.html?utm_source=itdadao&utm_medium=referral)

2.画出的图显示不全(画布小)

如下图,我的图片Y轴的标签纸有的没有显示完整:

这是因为自己设置的画布小了,只需要修改  plt.figure(figsize=(16,10)) 函数,将figsize的第一个值增大就行,第一个值改的是画布宽度,第二个值改的是画布高度。

3.在画出的图上显示每个点的数值

上面的图我们可以看到,每个直方块没有显示出数值在上面,我们增加代码

for value,serial_num in zip(features_importance_value,range(n_features)):
    plt.text(value+0.2,serial_num-0.3,'%.4f'%value,ha='center',va='bottom',fontsize=9)

value+0.2:标签数值的x坐标

serial-0.3:标签数值的y坐标

‘%.4f’%value:要显示的数值以及设定取4位小数

以上就是我遇到的三个问题。

猜你喜欢

转载自blog.csdn.net/Perfect_Accepted/article/details/81368749