简记matplotlib中文显示方法

<p>20100222更新:</p>
<p>matplotlib 0.99版</p>
<p>修改matplotlibrc文件:</p>
<p>font.family : sans-serif <span style="background-color: #888888;">#打开该选项</span></p>
<p>font.sans-serif : <span style="color: #ff0000;">Microsoft YaHei</span>
, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif <span style="background-color: #888888;">#添加“Microsoft YaHei”</span></p>
<p></p>
<p>注:在font.sans-serif中添加的字体名称必须正确,可以在$HOME/.matplotlib/fontList.cache文件中,通过查找文件名找到对应的名称,如上面的"Microsoft YaHei"的字体文件名称为“msyh.ttf",搜索一下就找到了。如果还不行,试着将字体文件copy到/usr/share/matplotlib/mpl-data/fonts/ttf目录下,再试。</p>
<p></p>
<p>========================</p>
<p>以前的:</p>
<p>前段时间一直使用python的matplotlib绘图,但是中文显示一直都是方块,当时虽然也从matplotlib的文档中看到介绍说可以完美显示Unicode,但试验几次没有成功也就撂在一旁,反正中英文也可以将就。近日有仔细研究了一下matplotlib的范例,现在终于可以完美显示中文了。在此简单记录一下方法,供后来人参考。</p>
<p>matplotlib的字体管理器似乎实现的还不是特别完美,我暂时无法通过修改默认配置文件的方式来修改,也没办法通过指定字体名称来显示,幸运的是,mpl可以在每次绘制字体时直接指定字体文件。</p>
<p>例如:</p>
<p>#指定字体文件,下面我就是直接使用的“微软雅黑”字体:</p>
<p>myfont = matplotlib.font_manager.FontProperties(fname='/usr/share/fonts/truetype/msyh.ttf')</p>
<p></p>
<p>#之后,mpl和字体有关的函数,如text,title等都可以直接指定字体属性,见下面红字:</p>
<p>axes.text(0.99,0.97, text, horizontalalignment='right', verticalalignment='top', <br>
transform=axes.transAxes,<span style="color: #ff0000;"> fontproperties=myfont</span>
, color=color)</p>
<p></p>
<p>下面是用matplotlib绘制的上证指数的周线图,汉字也完美的显示了,期待以后可以通过直接修改默认配置文件的方式指定想要的字体:</p>
<p></p>
<p><img src="http://p.blog.csdn.net/images/p_blog_csdn_net/KongDong/EntryImages/20090710/%E5%A4%A7%E7%9B%98%E5%91%A8%E7%BA%BF20090628png.png" alt="上证指数周线图" width="668" height="537"></p>

你可能感兴趣的:(mat)