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获取mp3文件信息的方法
Jun 15 Python
谈谈Python进行验证码识别的一些想法
Jan 25 Python
Python实现压缩和解压缩ZIP文件的方法分析
Sep 28 Python
怎么使用pipenv管理你的python项目
Mar 12 Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 Python
Python编程学习之如何判断3个数的大小
Aug 07 Python
Python进程池Pool应用实例分析
Nov 27 Python
matplotlib绘制多个子图(subplot)的方法
Dec 03 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
Aug 03 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
Aug 19 Python
python与c语言的语法有哪些不一样的
Sep 13 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 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编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
php 获取全局变量的代码
2011/04/21 PHP
与文件上传有关的php配置参数总结
2013/06/14 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
jQuery中first()方法用法实例
2015/01/06 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
13个PHP函数超实用
2015/10/21 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
python之wxPython菜单使用详解
2014/09/28 Python
解析Python中的异常处理
2015/04/28 Python
Python实现队列的方法
2015/05/26 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Python列表切片常用操作实例解析
2019/12/16 Python
解决jupyter notebook 出现In[*]的问题
2020/04/13 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
会话Bean的种类
2013/11/07 面试题
企业申诉管理制度
2014/01/30 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
团组织推优材料
2014/12/29 职场文书
党课主持词大全
2015/06/30 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
Redis实现一个账号只能登录一个设备
2022/04/19 Redis