ArcGIS10中matplotlib画图时的中文设置

利用GIS的数据批量生成XY的图形图像文件,可以直接使用Python。一般大家都是用matplotlib,中文设置的问题参看了许多内容,结论是对错不一,让我折腾了三天,现总结如下:

1.软件的版本。安装测试的为numpy-1.6.1和matplotlib-1.1.0,WindowsXP系统。我原来系统安装的numpy-1.6和matplotlib-1.1.0有冲突。

2.修改matplotlibrc文件。ArcGIS10下安装后,该文件在C:Python26ArcGIS10.0Libsite-packagesmatplotlibmpl-data下,利用记事本打开后找到下列两句:

#font.family         : sans-serif
#font.sans-serif     : Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
将注释符号#去掉,并增加中文字体名,修改如下:
font.family         : sans-serif
font.sans-serif     : Microsoft YaHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

 注:在font.sans-serif中添加的字体名称必须正确,XP下可以在C:Documents and Settings[用户名].matplotlib/fontList.cache文件中,通过查找文件名找到对应的名称,如上面的"Microsoft YaHei"的字体文件名称为“msyh.ttf",搜索一下就找到了。如果还不行,试着将字体文件copy到C:Python26ArcGIS10.0Libsite-packagesmatplotlibmpl-datafonts tf目录下。
 
3.在Python程序中增加下列语句
mpl.rcParams['axes.unicode_minus'] = False  #避免负号不显示的错误
 
4.Unicode的设置。如果在ArcGIS10环境以外调试,必须在文件开始处(第一行)中增加:
#-*- coding: utf-8 -*-
字符格式使用u‘中文显示'
如果是在ArcGIS10中的Arctoolbox中调用,上面的Unicode的设置反而多余。ArcGIS10默认值即可,没有必要设置,通过参数传进去的字符均为Unicode字符。
通过以上几个步骤在ArcGIS10下作图成功。
原文地址:https://www.cnblogs.com/goodmangis/p/3787577.html