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默认的字体替换为某种中文字体,然后就能一劳永逸了。当然这种方式并不推荐使用。最主要的原因是,替换后,虽然本地的代码可以正常显示,但是,在移植后,因为新系统和旧系统之间存在差异,很可能再次出现乱码。所以,不到万不得已,还是不推荐使用。

  • 相关阅读:
    深入Celery之使用队列以及优先级提高响应
    Redis真的那么好用吗?
    Python中的绝对导入和相对导入
    七个可以提升python程序性能的好习惯
    log封装-python3
    通过zoopkeeper客户端查看Kafka主题实例ip(需要知道任意一个zk地址)
    python3-kafka生产者可入json数据(pykafka)
    python3-数据库插入数据(pymysql)
    unittest显示用例名称
    appium(1)-获取APPdriver封装
  • 原文地址:https://www.cnblogs.com/magle/p/7668219.html
Copyright © 2011-2022 走看看