ubuntu下matplotlib中文字体的设置

置方法主要参考http://blog.sciencenet.cn/blog-43412-343002.html中的第一种方法,第二种方法在ubuntu中怎么设置都没有用。。。
如果有人在ubuntu 15.04成功使用第二种方法解决了,还请不吝赐教发送邮件

安装matplotlib时,我采用的是直接使用下面的apt命令进行安装:
sudo apt-get install python-matplotlib
安装出来的东西,与网上设置中文字体遇到环境有很大不同。
1. mpl-data安装目录不同,该目录存放有matplotlib使用的字体,在ubuntu下目录位于/usr/share/matplotlib;
2. matplotlibrc目录不同,位于/etc/matplotlibrc;
3. 在ubuntu下家目录下默认配置文件存放在.config/matplotlib目录下面;
4. 另外折腾半天,也没有网上提到的fontList.cache文件生成,都想重新从git库检出matplotlib进行手动安装,但下载太慢放弃了。
5. 不同ubuntu下可用的中文字体不一样,网上很多说什么将matplotlibrc的serif字体中加入YaHei等等,根本没有考虑机器的使用环境。。。

因此,安装步骤如下:
1. 确认你ubuntu系统环境下拥有的中文字体文件
fc-list :lang=zh
命令输出如下:

/usr/share/fonts/truetype/arphic/uming.ttc: AR PL UMing TW MBE:style=Light
/usr/share/fonts/truetype/arphic/ukai.ttc: AR PL UKai CN:style=Book
/usr/share/fonts/truetype/arphic/ukai.ttc: AR PL UKai HK:style=Book
/usr/share/fonts/truetype/arphic/ukai.ttc: AR PL UKai TW:style=Book
/usr/share/fonts/truetype/wqy/wqy-microhei.ttc: WenQuanYi Micro Hei,文泉驛微米黑,文泉驿微米黑:style=Regular
/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf: Droid Sans Fallback:style=Regular
/usr/share/fonts/truetype/arphic/ukai.ttc: AR PL UKai TW MBE:style=Book
/usr/share/fonts/truetype/arphic/uming.ttc: AR PL UMing TW:style=Light
/usr/share/fonts/truetype/arphic/uming.ttc: AR PL UMing CN:style=Light
/usr/share/fonts/truetype/arphic/uming.ttc: AR PL UMing HK:style=Light
/usr/share/fonts/truetype/wqy/wqy-microhei.ttc: WenQuanYi Micro Hei Mono,文泉驛等寬微米黑,文泉驿等宽微米黑:style=Regular

我从中选择了Droid Sans Fallback字体
2. 在python脚本中手动加载中文字体

import matplotlib.pyplot as plt
import matplotlib as mpl
zhfont = mpl.font_manager.FontProperties(fname='/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf')
plt.plot([1, 2, 3])
plt.xlabel(u'x轴标签', fontproperties=zhfont)
plt.show()

通过以上方法,应该就能正确显示字体了。

### 配置 Matplotlib 支持中文字体 要在 Ubuntu 上配置 Matplotlib 以支持中文字体,可以按照以下方式操作: #### 字体安装 为了使 Matplotlib 能够正常显示中文字符,首先需要确保系统中有可用的中文字体。可以选择常见的中文字体如微软雅黑 (Microsoft YaHei),并将其安装到系统的字体目录 `/usr/share/fonts` 中。 可以通过以下命令完成字体的安装过程[^3]: ```bash sudo cp 待安装字体.ttf /usr/share/fonts/ sudo chmod +r /usr/share/fonts/*.ttf fc-cache -fv ``` 上述命令的作用分别是:将字体文件复制到系统字体目录、赋予读取权限以及刷新字体缓存。 #### 修改 Matplotlib字体配置 Matplotlib 使用 `matplotlibrc` 文件来定义默认样式参数,其中包括字体设置。如果希望全局应用某个特定的中文字体,则需调整该文件中的相关内容。然而,在实际操作过程中发现仅仅更改此文件可能不足以解决问题,因为所指定的字体未必会被正确加载至 Matplotlib 内部环境之中[^2]。 因此推荐通过编程手段动态设定所需使用的字体类型。例如利用 Python 脚本显式声明 SimHei 或其他兼容汉字渲染效果较好的字型作为绘图时的文字属性之一[^4]。 以下是具体实现代码示例: ```python import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font = FontProperties(fname='/path/to/simhei.ttf') # 替换为实际字体路径 plt.figure() plt.plot([1,2,3], label="测试", fontproperties=font) plt.legend(prop=font) plt.show() ``` 以上脚本片段展示了如何借助 `FontProperties` 类实例化对象关联外部 TTF 文件资源,并应用于图表标题、轴标签以及其他任何涉及文本输出的地方。 另外值得注意的是,有时即使完成了前述步骤仍可能出现编码异常情况导致乱码现象发生。此时可尝试调用 `mpl.rcParams['axes.unicode_minus'] = False` 来关闭 Unicode 减号的支持从而规避潜在冲突风险[^1]。 ### 注意事项 - 确认已成功导入目标字体到操作系统层面; - 正确指定了绝对地址指向对应字体描述符(.ttf/.otf); - 如果频繁需要用到某类特殊风格的文字呈现形式的话考虑把自定义偏好保存进个人专属 rcParams 设置当中去简化后续重复劳动强度;
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值