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监控网站运行异常并发送邮件的方法
Mar 13 Python
python编写简单爬虫资料汇总
Mar 22 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
Jul 13 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
用python实现刷点击率的示例代码
Feb 21 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
基于python实现雪花算法过程详解
Nov 16 Python
python模拟实现分发扑克牌
Apr 22 Python
Python基于gevent实现文件字符串查找器
Aug 11 Python
selenium+headless chrome爬虫的实现示例
Jan 08 Python
python对文档中元素删除,替换操作
Apr 02 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
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
vuex存储token示例
2019/11/11 Javascript
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
在Python中使用第三方模块的教程
2015/04/27 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
Python基于yaml文件配置logging日志过程解析
2020/06/23 Python
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
2014年消防工作实施方案
2014/02/20 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
差生评语大全
2014/05/04 职场文书
计划生育证明格式范本
2014/09/12 职场文书
工人先进事迹材料
2014/12/26 职场文书
车间统计员岗位职责
2015/04/14 职场文书
学校德育工作总结2015
2015/05/11 职场文书
给领导敬酒词
2015/08/12 职场文书
2019消防宣传标语!
2019/07/10 职场文书