mac在matplotlib中显示中文的操作方法


Posted in Python onMarch 06, 2020

Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形   。
通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

下面开始今天的正文。

首先保证电脑里是否安装了中文字体,然后找到他们!!

具体步骤如下:

先打开终端,command+空格 搜索 ter,然后会蹦出终端,点开

输入 fc-list :lang=zh

如果显示command not found

输入 conda install fontconfig

然后输入 y

然后就安装好了!!!!

再输入fc-list :lang=zh

好了,看看有哪些字体

剩下就是anaconda的操作了

import matplotlib.pyplot as plt
plt.rcParams["font.family"] = 'Arial Unicode MS'

import matplotlib
a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
 
for i in a:
 print i

mac在matplotlib中显示中文的操作方法

#保证中文正常使用
from sklearn.datasets import make_blobs, load_iris
import matplotlib.pyplot as plt


# 支持中文
plt.rcParams['font.sans-serif'] = ['Arial Black'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号

n_samples = 1000
random_state = 37 #随机分割测试集和训练集

x, y = make_blobs(n_samples=n_samples, random_state=random_state)
# x, y = load_iris(True) # 莺尾花
print(x.shape, y.shape)
plt.scatter(x[:, 0], x[:, 1], c=y)
plt.title(u"原始数据分布")
plt.xlabel(u"长度")
plt.ylabel(u"宽度")
plt.show()

mac在matplotlib中显示中文的操作方法

知识点补充:

给大家补充一个matplotlib中文乱码问题

在ubuntu16.04中使用python的matplotlib模块进行科学制图时,在输出图例或者标题的时候出现中文乱码问题:

解决:

下载字体:msyh.ttf (微软雅黑),放在系统字体文件夹下: /usr/share/fonts
同时我也复制了下放在matplotlib的字体文件夹下了(不知道这一步是不是必须)

/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/fonts/ttf/

修改matplotlib配置文件:

sudo vim /usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/matplotlibrc

删除font.family和font.sans-serif两行前的#,并在font.sans-serif后添加中文字体
Microsoft YaHei, ...(其余不变)

删除~/.cache/matplotlib下文件fontList.py3k.cache

重启python即可

注意:在我修改完成后还需要在代码里加入:

import maplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 显示中文不乱码
plt.rcParams['axes.unicode_minus'] = False # 显示负数不乱码

另外:可以执行下这段程序--可以打印出可用的字体:

#! /usr/bin/env python
# -*- coding: utf-8 -*-
from matplotlib.font_manager import FontManager
import subprocess

fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)
#print(mat_fonts)
output = subprocess.check_output('fc-list :lang=zh -f "%{family}\n"', shell=True)
#print( '*' * 10, '系统可用的中文字体', '*' * 10)
#print (output)
zh_fonts = set(f.split(',', 1)[0] for f in output.decode('utf-8').split('\n'))
available = mat_fonts & zh_fonts
print ('*' * 10, '可用的字体', '*' * 10)
for f in available:
  print (f)

总结

到此这篇关于mac如何在matplotlib中显示中文的文章就介绍到这了,更多相关mac matplotlib 中文内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解Python import方法引入模块的实例
Aug 02 Python
浅谈flask截获所有访问及before/after_request修饰器
Jan 18 Python
Python简单实现的代理服务器端口映射功能示例
Apr 08 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
python list是否包含另一个list所有元素的实例
May 04 Python
numpy返回array中元素的index方法
Jun 27 Python
Python多进程写入同一文件的方法
Jan 14 Python
在python中用print()输出多个格式化参数的方法
Jul 16 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
Python模拟登录和登录跳转的参考示例
Oct 30 Python
Python 中的Sympy详细使用
Aug 07 Python
python数据类型可变不可变知识点总结
Mar 06 #Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 #Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
Mar 06 #Python
python实现QQ邮箱发送邮件
Mar 06 #Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 #Python
关于Python字符串显示u...的解决方式
Mar 06 #Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 #Python
You might like
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
2013/06/24 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
Javascript学习指南
2014/12/01 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
Javascript中神奇的this
2016/01/20 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
typescript配置alias的详细步骤
2020/08/12 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
python获取网页状态码示例
2014/03/30 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
python破解同事的压缩包密码
2020/10/14 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
自行车租赁公司创业计划书
2014/01/28 职场文书
市场拓展计划书
2014/05/03 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
初中作文评语集锦
2014/12/25 职场文书
考试作弊检讨书
2015/01/27 职场文书
宾馆客房管理制度
2015/08/06 职场文书
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android