matplotlib在MAC系统下中文字体显示问题
最近想把部分python数据分析的代码从win系统迁移到MAC上,有部分图片上涉及中文显示,迁移到MAC上warning:
UserWarning:
findfont: Font family [u'sans-serif'] not found. Falling back to Bitstream Vera Sans
(prop.get_family(), self.defaultFamily[fontext]))
然后中文字体各种方块,我本来的字体设置代码是这样的:
def plot_para():#设置画图参数及相关配置,如透明度,中文显示
mpl.rcParams['font.sans-serif']='SimHei'
mpl.rcParams['font.family']='sans-serif'
mpl.rcParams['axes.unicode_minus']=False
网上给出了各种解决方案,总结下来无外乎下面两种:
1.安装对应字体,比如我的是微软雅黑
2.将simhei.ttf拷贝到matplotlib的ttf文件夹下并删除缓存文件夹
很遗憾这两种对我都不work,从stackoverflow查找到了下面比较笨重的解决方案,算是暂时解决了问题。
def plot_para():#设置画图参数及相关配置,如透明度,中文啥啥的
mpl.rcParams['axes.unicode_minus']=False
#手动设置字体路径
return FontProperties(fname='/Users/wanghongbo8/Library/Fonts/msyh.ttf')
#在设置绘图的部分指定FontProperties,比如
plt.ylabel(u'T+4有效与T+1有效 GMV 比值',FontProperties=plot_para())
至此mac绘图中文显示无误,但是这个方法比较笨,在涉及中文的部分都要手动指定fontproperties,当然可以通过函数重载来解决,却也有点高射炮打蚊子的意味,报错的源码位于matplotlib的:
matplotlib/font_manager.py:1236行
看到此问题的朋友有能力可以深究一下原因,我个人如果解决了会更新此文。
matplotlib在MAC系统下中文字体显示问题的更多相关文章
- html lang="zh-cn"解决Mac版Firefox中文字体显示问题
这两天在Mac下被Firefox的中文字体显示问题所困扰.在Firefox中将Sans-serif字体设置为SimSun-ExtB(新宋体)或英文字体(这时会用Mac默认中文字体),如下图: 浏览园子 ...
- Latex 环境下“中文字体”的使用
Latex 环境下“中文字体”的使用 使用CTex自带编辑器WinEdt,在该环境下如何使用中文字体呢?作为一个菜鸟,折腾了好几天,最终基本解决了这个问题.现在整理下,分享给后来者. 对于使用中文字体 ...
- 关于JAVA应用中文字体显示小方框的问题解决
最近碰到linux下jboss应用中中文字体显示为小方框: “在JRE 5以上的java环境中,java会自动加载$JAVA_HOME/jre/lib/fonts目录下的字体.链接或复制宋体或微软雅黑 ...
- CentOS系统下中文文件名乱码
原文来自:http://www.zhukun.net/archives/7434 CentOS系统下中文文件名乱码 2014/09/01Linux运维centos.Linuxbear 从windows ...
- mac系统下ionic环境配置
本人是在mac环境下进行配置的: 下载nodejs:https://nodejs.org/download/ 并双击安装 Cordova and Ionic command-line tools 安装 ...
- mac系统下虚拟机parallels安装ubuntu 14.04
mac系统很棒,mac下的开发环境也很棒,但有时你还得需要ubuntu开发环境,比如进行嵌入式Linux交叉编译,使用Linaro toolchain… 其实mac系统下使用parallels虚拟机安 ...
- mac系统下Eclipse + pydev配置python Interpreter
mac系统下Eclipse + pydev配置python Interpreter 之前都在windows下使用Eclipse + pydev 进行开发,未发现什么异常,最近对wxpy.itcha ...
- Mac系统下React Native环境搭建
这里记录一下在Mac系统下搭建React Native开发环境的过程: 1. 安装HomeBrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.g ...
- MAC系统下,删除.svn文件
MAC系统下,.svn文件是隐藏的. 如果项目是非export导出的,那么项目中会有很多的.svn文件. 如果项目的体积非常庞大,我们如何快速的批量删除.svn文件呢?下面是操作方法: 打开终端,cd ...
随机推荐
- Simple2D-15(音乐播放器)使用 glfw 库
glfw 是一个专门针对 OpenGL 的 C 语言库,它提供了一些渲染物体所需的最低限度的接口.它允许用户创建 OpenGL 上下文,定义窗口参数以及处理用户输入. 这次打算使用 GLFW 替代掉 ...
- ios push local notification
UILocalNotification* localNotification = [[UILocalNotification alloc]init]; localNotification.alertB ...
- LESS CSS 实例
值得参考的 10 个 LESS CSS 实例 2 收藏(185) LESS, Sass 和其他 CSS 预处理器是一种超棒的方法用来扩展 CSS 功能,使之更适合程序员.你可以使用变量.函数.混合 ...
- 全屏幕显示AVI
uses Unit2; procedure TForm1.Button1Click(Sender: TObject);begin Form2.Show; Form2.WindowState := ...
- Hibernate 中的锁( locking )
业务逻辑的实现过程中,往往需要保证数据访问的排他性.如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数 ...
- Android中app卡顿原因分析示例
在知乎回答了一个“为什么微博的app在iPhone比Android上流畅”的问题.后面部分是一个典型的动画卡顿的性能分析过程,因此帖在这里.有编程问题可以在这里交流.知乎链接. =========== ...
- URLconf
URLconf 浏览者通过在浏览器的地址栏中输入网址请求网站,对于Django开发的网站,由哪一个视图进行处理请求,是由url匹配找到的 配置 在test3/settings.py中通过ROOT_UR ...
- mysql备份的三种方式
一.备份的目的 做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用 二.备份需要考虑的问题 可以容忍丢失多长时间的数据:恢复数据要在多长时间内 ...
- Mysql update 一个表中自己的数据
update table ucf, table t2 set ucf.pcid = t2.pcid where t2.name = 'liming' and t2.gid= ucf.gid and ...
- http头解释
<---响应头---> 长连接: Connection: keep-alive 开启长连接 ---- connection 英 [kəˈnekʃn]连接 ...