• python--matplotlib显示中文问题(四种方法)


    python27中matplotlib并不支持直接使用中文,此处提供四种方法解决这个问题:

    Method 1:

      在代码中插入以下三行代码:

    1 from pylab import *
    2 mpl.rcParams['font.sans-serif']=['SimHei']
    3 mpl.rcParams['axes.unicode_minus']=False

    经实测,这种解决办法会引发一个问题就是,就是同时导入numpypylab两个模块的所有方法时,需要"np.random()",才能正确使用random(),不知道问题出在哪里。可能是pylab模块会和numpy模块中的某些方法冲突。


    Method 2:  

      1.找到matplotlibrc文件

      C:Python26Libsite-packagesmatplotlibmpl-datamatplotlibrc(Windows)         /usr/share/matplotlib/mpl-data/matplotlibrc (Linux)

      2.找到以下两项,去掉#

      font.family : sans-serif

      font.sans-serif : Microsoft YaHei , Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif    #添加“Microsoft YaHei”,该行指示缺省字体

      

        

      3.在写python code的时在字符串前加上u,表示unicode编码,例如:

    matplotlib绘制树形图:

     1 #!/usr/bin/env python
     2 #-*- coding:utf-8 -*-
     3 
     4 import matplotlib.pyplot as plt
     5 '''
     6 解决python matplotlib画图无法显示中文的问题!
     7 
     8 from pylab import *
     9 mpl.rcParams['font.sans-serif']=['SimHei']
    10 mpl.rcParams['axes.unicode_minus']=False
    11 '''
    12 ###################################################
    13 decisionNode=dict(boxstyle="sawtooth",fc="0.8")
    14 leafNode=dict(boxstyle="round4",fc="0.8")
    15 arrow_args=dict(arrowstyle="<-")
    16 
    17 def plotNode(nodeTxt,centerPt,parentPt,nodeType):
    18     createPlot.ax1.annotate(nodeTxt,xy=parentPt,
    19         xycoords='axes fraction',
    20         xytext=centerPt,textcoords='axes fraction',
    21         va="center",ha="center",bbox=nodeType,arrowprops=arrow_args)
    22 def createPlot():
    23     fig=plt.figure(1,facecolor='white')
    24     fig.clf()
    25     createPlot.ax1=plt.subplot(111,frameon=False)
    26     plotNode(u'决策节点',(0.5,0.1),(0.1,0.5),decisionNode)
    27     plotNode(u'叶子节点',(0.8,0.1),(0.3,0.8),leafNode)
    28     plt.show()

    结果图:

    Method 3

      修改全局字体。

     注意:必须 import matplotlib

    Method 4

      修改局部字体。

    推荐使用:Method 4

  • 相关阅读:
    赋值运算符函数
    系统设计面试题分析
    内核线程和用户线程的区别
    线程和进程区别
    TCP程序设计
    UDP程序设计
    死锁,死锁必要条件及处理策略
    Linux进程同步机制
    Windows与Linux下进程间通信技术比较
    Windows下进程通信方式
  • 原文地址:https://www.cnblogs.com/cygalaxy/p/6839994.html
Copyright © 2020-2023  润新知