最近想把部分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系统下中文字体显示问题的更多相关文章

  1. html lang="zh-cn"解决Mac版Firefox中文字体显示问题

    这两天在Mac下被Firefox的中文字体显示问题所困扰.在Firefox中将Sans-serif字体设置为SimSun-ExtB(新宋体)或英文字体(这时会用Mac默认中文字体),如下图: 浏览园子 ...

  2. Latex 环境下“中文字体”的使用

    Latex 环境下“中文字体”的使用 使用CTex自带编辑器WinEdt,在该环境下如何使用中文字体呢?作为一个菜鸟,折腾了好几天,最终基本解决了这个问题.现在整理下,分享给后来者. 对于使用中文字体 ...

  3. 关于JAVA应用中文字体显示小方框的问题解决

    最近碰到linux下jboss应用中中文字体显示为小方框: “在JRE 5以上的java环境中,java会自动加载$JAVA_HOME/jre/lib/fonts目录下的字体.链接或复制宋体或微软雅黑 ...

  4. CentOS系统下中文文件名乱码

    原文来自:http://www.zhukun.net/archives/7434 CentOS系统下中文文件名乱码 2014/09/01Linux运维centos.Linuxbear 从windows ...

  5. mac系统下ionic环境配置

    本人是在mac环境下进行配置的: 下载nodejs:https://nodejs.org/download/ 并双击安装 Cordova and Ionic command-line tools 安装 ...

  6. mac系统下虚拟机parallels安装ubuntu 14.04

    mac系统很棒,mac下的开发环境也很棒,但有时你还得需要ubuntu开发环境,比如进行嵌入式Linux交叉编译,使用Linaro toolchain… 其实mac系统下使用parallels虚拟机安 ...

  7. mac系统下Eclipse + pydev配置python Interpreter

    mac系统下Eclipse + pydev配置python Interpreter   之前都在windows下使用Eclipse + pydev 进行开发,未发现什么异常,最近对wxpy.itcha ...

  8. Mac系统下React Native环境搭建

    这里记录一下在Mac系统下搭建React Native开发环境的过程: 1. 安装HomeBrew: /usr/bin/ruby -e "$(curl -fsSL https://raw.g ...

  9. MAC系统下,删除.svn文件

    MAC系统下,.svn文件是隐藏的. 如果项目是非export导出的,那么项目中会有很多的.svn文件. 如果项目的体积非常庞大,我们如何快速的批量删除.svn文件呢?下面是操作方法: 打开终端,cd ...

随机推荐

  1. YII assets使用

    为什么用YII assets 1.assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问protected下面的文件 ,但是我们又希望将module单独出来,所以需要使用发 ...

  2. Datatable数据分组

    datatable里面的数据是按照这个顺序排列的 姓名    性别        年龄 a1          男           12 a1         女             11 a ...

  3. Python之filter函数

    描述 filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表. 该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 Tru ...

  4. objective c, property, copy

    @property (copy) nsmutablearray *array -copy, as implemented by mutable Cocoa classes, always return ...

  5. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 错误处理

    沪江CCtalk视频地址:https://www.cctalk.com/v/15114923887518 处理错误请求 爱能遮掩一切过错. 当我们在访问一个站点的时候,如果访问的地址不存在(404), ...

  6. C++ 0x 使用可变参数模板类 实现 C# 的委托机制

    #ifndef _ZTC_DELEGATE_H_ #define _ZTC_DELEGATE_H_ #include <vector> #include <functional> ...

  7. spring 3.x + hibernate4.x 实现数据延迟加载

      Spring为我们解决Hibernate的Session的关闭与开启问题. Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Sess ...

  8. one by one 项目 part 4

    出现异常”The last packet sent successfully to the server was 0 milliseconds ago.“的大部分原因是由于数据库回收了连接,而系统的缓 ...

  9. [Fiddler] The connection to 'xxxxx.com' failed. <br />System.Security.SecurityException Failed to negotiate HTTPS connection with server.fiddler.network.https&gt; HTTPS handshake to intelte

    最近利用模拟发get请求的时候出现: [Fiddler] The connection to ‘xxxxx.com' failed. <br />System.Security.Secur ...

  10. mac下将根目录/更改组到普通用户,导致sudo不能用

    背景:这是个很愚蠢的故事,我更改了根目录下所有文件的拥有者为普通用户[chown -R xxx / ].结果sudo/su命令都不能用了……   问题:一旦用sudo命令或su命令就提示: sudo: ...