利用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:\Python26\ArcGIS10.0\Lib\site-packages\matplotlib\mpl-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:\Python26\ArcGIS10.0\Lib\site-packages\matplotlib\mpl-data\fonts\ttf目录下。 3.在Python程序中增加下列语句
mpl.rcParams['axes.unicode_minus'] = False #避免负号不显示的错误
4.Unicode的设置。如果在ArcGIS10环境以外调试,必须在文件开始处(第一行)中增加:
#-*- coding: utf-8 -*-
字符格式使用u‘中文显示'
如果是在ArcGIS10中的Arctoolbox中调用,上面的Unicode的设置反而多余。ArcGIS10默认值即可,没有必要设置,通过参数传进去的字符均为Unicode字符。
通过以上几个步骤在ArcGIS10下作图成功。
|