matplotlib pyplot表与非ascii数据?

时间:2013-10-21 09:50:09

标签: encoding utf-8 matplotlib

我正在尝试在png中创建一个表格。

表中的数据包含非ascii字符。(假设它是中文或其他内容)

我将unicode代码点(u'hello')传递给pyplot,它将字符显示为正方形。

2 个答案:

答案 0 :(得分:1)

它可能(稍微)依赖于平台,但我更喜欢将unicode用于中文和其他语言。另一件事是你需要确保matplotlib必须得到必要的字体。您可以在需要text的任何地方执行此操作,但有时不使用mathtext

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import matplotlib
zhfont1 = matplotlib.font_manager.FontProperties(fname='/Library/Fonts/Kai.dfont') #I am on OSX.
s=u'\u54c8\u54c8' #Need the unicode for your Chinese Char.
plt.text(0.5,0.5,s,fontproperties=zhfont1, size=50) #example: plt.text()

enter image description here

答案 1 :(得分:0)

另一种方法是修改matplotlib系统上的文件/ matplotlibrc /。

找到这一行

#font.sans-serif

并在此行中添加您的字体。

然后你需要将font-file添加到matplotlib的字体目录中。

这里我给出了这两条路径:

  1. 〜\应用程序数据\本地\ Enthought \冠层\用户\ LIB \站点包\ matplotlib \ MPL-数据
  2. $ HOME.matplotlib \ fontList.cache
  3. PS:Windows 7。