zoukankan      html  css  js  c++  java
  • 数据可视化——matplotlib(3)

    导入相关模块

    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    

    中文显示设置

    在之前,绘图时均使用的是英文,并没有使用过中文,那是因为直接使用中文会遇到乱码的问题,就比如:

    a = (1,3,2,5,4)
    b = (2,5,3,4,1)
    
    plt.plot(a)
    plt.xlabel('类型')
    plt.ylabel('数量')
    plt.title('某商店货物数量')
    plt.show()
    

    当然,并不是因为matplotlib不支持中文。作为Python中的热门模块,matplotlib是支持Unicode编码的,但是在默认情况下,它使用的是自带的字体,这些字体并没有中文支持。因此,最后的结果就是一堆的乱码。
    解决乱码的方法有几种,主要方法有一下集中:

    临时设置

    matplotlib将许多常用模块集中到了统一的namespace中,产生了pylab。导入pylab后可以轻易的设置matplotlib所使用的字体,一个简单的例子如下:

    from pylab import *
    mpl.rcParams['font.sans-serif'] = ['SimHei']
    mpl.rcParams['axes.unicode_minus'] = False
    plt.plot(a)
    plt.xlabel('类型')
    plt.ylabel('数量')
    plt.title('某商店货物数量')
    plt.show()
    

    当然,使用临时方法可以解决中文显示,甚至在移植编码时,也保持了一定的容错性(除非新系统中缺少当前设置的字体)。但是,在每一次创建新的coding时,需要再次的设定,也就多了些许的麻烦。

    暴力替换

    除了每次进行设置,还有一种比较暴力的方式,也就是将matplotlib默认的字体替换为某种中文字体,然后就能一劳永逸了。当然这种方式并不推荐使用。最主要的原因是,替换后,虽然本地的代码可以正常显示,但是,在移植后,因为新系统和旧系统之间存在差异,很可能再次出现乱码。所以,不到万不得已,还是不推荐使用。

  • 相关阅读:
    HTML5标签的标准属性
    HTML页面莫名宽了一点
    HTTP通信基础HTTP协议数据结构分析
    JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    linux 下安装redis报错解决
    单元测试unittest
    python嵌套循环练习
    python操作MySQL
    Open XML for Office developers
    在线处理页面内容
  • 原文地址:https://www.cnblogs.com/magle/p/7668219.html
Copyright © 2011-2022 走看看