mac在matplotlib中显示中文的操作方法
Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 。
通过Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。
下面开始今天的正文。
首先保证电脑里是否安装了中文字体,然后找到他们!!
具体步骤如下:
先打开终端,command+空格搜索ter,然后会蹦出终端,点开
输入fc-list:lang=zh
如果显示commandnotfound
输入condainstallfontconfig
然后输入y
然后就安装好了!!!!
再输入fc-list:lang=zh
好了,看看有哪些字体
剩下就是anaconda的操作了
importmatplotlib.pyplotasplt plt.rcParams["font.family"]='ArialUnicodeMS' importmatplotlib a=sorted([f.nameforfinmatplotlib.font_manager.fontManager.ttflist]) foriina: printi
#保证中文正常使用 fromsklearn.datasetsimportmake_blobs,load_iris importmatplotlib.pyplotasplt #支持中文 plt.rcParams['font.sans-serif']=['ArialBlack']#用来正常显示中文标签 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()
知识点补充:
给大家补充一个matplotlib中文乱码问题
在ubuntu16.04中使用python的matplotlib模块进行科学制图时,在输出图例或者标题的时候出现中文乱码问题:
解决:
下载字体:msyh.ttf(微软雅黑),放在系统字体文件夹下:/usr/share/fonts
同时我也复制了下放在matplotlib的字体文件夹下了(不知道这一步是不是必须)
/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/fonts/ttf/
修改matplotlib配置文件:
sudovim/usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/matplotlibrc
删除font.family和font.sans-serif两行前的#,并在font.sans-serif后添加中文字体
MicrosoftYaHei,...(其余不变)
删除~/.cache/matplotlib下文件fontList.py3k.cache
重启python即可
注意:在我修改完成后还需要在代码里加入:
importmaplotlib.pyplotasplt plt.rcParams['font.sans-serif']=['SimHei']#显示中文不乱码 plt.rcParams['axes.unicode_minus']=False#显示负数不乱码
另外:可以执行下这段程序--可以打印出可用的字体:
#!/usr/bin/envpython #-*-coding:utf-8-*- frommatplotlib.font_managerimportFontManager importsubprocess fm=FontManager() mat_fonts=set(f.nameforfinfm.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]forfinoutput.decode('utf-8').split('\n')) available=mat_fonts&zh_fonts print('*'*10,'可用的字体','*'*10) forfinavailable: print(f)
总结
到此这篇关于mac如何在matplotlib中显示中文的文章就介绍到这了,更多相关macmatplotlib中文内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。