【Python基础】matplotlib字体设置看这一篇就够了-深圳网站优化推广公司

【Python基础】matplotlib字体设置看这一篇就够了

本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes

1 简介

matplotlib作为数据可视化的利器,被广泛用于数据分析之中,但不太友好的是matplotlib中书写非英文文字内容时,如果不事先对字体进行相关设置,会发现绘制出的诸如「中文」等均显示为「方块乱码」,而今天的内容,我们就来小小总结一下matplotlib中字体设置的常用技巧。

图1

2 在matplotlib中设置字体的常用方法

matplotlib中设置字体的方法按作用范围可分为全局设置与临时设置:

2.1 在matplotlib中设置全局字体

我们在默认状态下使用matplotlib书写中文内容时之所以显示出乱码,是因为matplotlib默认的字体为英文字体,导致许多unicode编码的语言文字都无法书写。

而全局设置字体的方式,指的是我们可以通过修改本地配置文件或在程序开头设置字体相关参数,从而人为地为当前kernel下的matplotlib规定使用指定的字体,主要有以下几种情况:

  • 「使用系统自带字体」

所谓「系统自带字体」,譬如对于windows,其系统盘Windows/Fonts下的诸多已安装到系统中的字体:

图2

当然,matplotlib可以检测到的字体不止上述的这些,我们可以通过下列方式查看matplotlib中默认已经识别到的所有可用字体:

import matplotlib.pyplot as plt
from matplotlib import font_manager

for font in font_manager.fontManager.ttflist:
    # 查看字体名以及对应的字体文件名
    print(font.name, '-', font.fname)
图3

其中在font_manager.fontManager.ttflist中迭代到的每个对象,其name属性即为我们下面设置字体要使用到的名称,以「华文琥珀」为例,我们先查看到其对应的字体文件名称:

图4

接着我们写两行程序来找到其对应的名称:

图5

接着按照plt.rcParams['font.sans-serif'] = 字体名称的格式设置即可:

图6

可以看到这时我们全局所有文字都变成「华文琥珀」

  • 「使用任意的字体」

如果你想要的字体不在系统默认字体中,且你只想临时使用不想安装到系统字体中,则可以利用font_manager.fontManager.addfont()来传入字体文件路径临时注册一个字体,以我下载的三方字体文件MaShanZheng-Regular.ttf为例:

图7 图8

2.2 在matplotlib中设置局部字体

而如果你只是想要在数据可视化作品中的部分元素譬如文字标注中临时使用一下字体,则可以利用font_manager.FontProperties()将字体路径作为fname参数传入,并传入到对应matplotlib绘图API相应参数中,以text()为例:

图9

而刻度标签则可以参考下面的方式:

图10

以上就是本文的全部内容,欢迎在评论区与我进行讨论~


往期精彩回顾



适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
获取本站知识星球优惠券,复制链接直接打开:
https://t.zsxq.com/qFiUFMV
本站qq群704220115。

加入微信群请扫码:

要对一篇中文文章进行词频统计并绘制词云图,可以使用Python中的jieba和wordcloud库。步骤如下: 1. 安装jieba和wordcloud库。在命令行中输入以下命令: ``` pip install jieba pip install wordcloud ``` 2. 导入所需库: ```python import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt from PIL import Image import numpy as np ``` 3. 打开中文文章并读取: ```python with open('article.txt', 'r', encoding='utf-8') as f: article = f.read() ``` 4. 使用jieba分词,并统计词频: ```python words = jieba.lcut(article) # 使用精确模式分词 freq = {} for word in words: if len(word) > 1: # 只统计长度大于1的词语 freq[word] = freq.get(word, 0) + 1 ``` 5. 生成词云图: ```python mask = np.array(Image.open('mask.png')) # 打开遮罩图片 wc = WordCloud(background_color='white', font_path='msyh.ttc', mask=mask, max_words=200, max_font_size=100, random_state=42) wc.generate_from_frequencies(freq) # 根据词频生成词云图 plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() ``` 其中,mask参数指定了词云图的形状,max_words和max_font_size分别指定了最多显示的词数和词的最大字号,font_path指定了使用的字体。 完整代码如下: ```python import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt from PIL import Image import numpy as np with open('article.txt', 'r', encoding='utf-8') as f: article = f.read() words = jieba.lcut(article) freq = {} for word in words: if len(word) > 1: freq[word] = freq.get(word, 0) + 1 mask = np.array(Image.open('mask.png')) wc = WordCloud(background_color='white', font_path='msyh.ttc', mask=mask, max_words=200, max_font_size=100, random_state=42) wc.generate_from_frequencies(freq) plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() ``` 其中,article.txt是要处理的文章,mask.png是词云图的形状图片,msyh.ttc是字体文件。
风度78 CSDN认证博客专家 CSDN认证企业博客
码龄17年 暂无认证
328
原创
1万+
周排名
3838
总排名
690万+
访问
等级
3万+
积分
3791
粉丝
5621
获赞
1133
评论
4万+
收藏
私信

最新评论

  • 推荐:腾讯开源的词向量精简版本下载

    2401_90014050: 腾讯向量词

  • PyTorch入门v2.pptx

    zhulaozi: pytorch入门

  • 【Python】Pandas中的宝藏函数-transform()

    小白m0_60907551: 好清楚,谢谢

  • 非常全面:72页ChatGPT研究框架(2023)ppt(附下载)

    2301_77728422: gpt2023

  • 非常全面:72页ChatGPT研究框架(2023)ppt(附下载)

    2301_77728422: gpt2023

目录

为什么被折叠? 到【灌水乐园】发言
前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

相关内容推荐

现金网站制作网站页面制作文案阳江企业网站制作大洋网站视频制作93看书网站制作如何制作卖衣服的网站策划多美滋网站制作起泡彩票网站制作搭建公司吴忠网站制作多少钱校园美剧网站制作带字图片制作网站在线使用安福网站制作公司邹城免费自己制作网站html5网站制作留言板网站建设制作s三沙工作室网站制作辽宁电子网站制作技术广州白云区有制作网站公司吗柳毅传翻译网站制作表情包图片制作网站自动充值游戏的网站制作克拉玛依网站首页制作南漳网站制作服务上海音乐学院网站制作起泡淄博网站制作雪糕制作购物商城网站总结与体会霍州网站设计制作天津网站前端制作长春网站制作外包宠物新闻网站制作字体素材松江网站设计制作托管维护音乐网站制作毕业设计天河区网站制作公司制作新闻网站的目的象山微信制作宣传网站有哪些手机网站制作视频教材入侵网站制作美食网站错误页面怎么制作网站制作设计风起苍岚网站表单后端制作宝安企业网站制作网站制作并搭建流程十堰网站制作手工永康如何制作一个静态的网站大都会电影网站制作专业郑州制作网站公司哪家好网站怎样制作订单跟踪文件夹怎么制作网站安庆如何制作自己的网站html5 制作股票网站朝阳网站的制作南宁兴宁区网站制作费用昆明如何制作自己的网站服装打版制作最好网站然后制作一个彩票网站新干网站制作曹县定制网站设计制作公司成都网站制作学校打赏网站怎么制作苹果手机制作网站app包包网站制作头像如何用代码制作营销网站广告劲舞团向日葵简历制作网站随县价格实惠网站制作公司视频制作动态图网站门户网站制作哪家服务好消防行业企业网站制作多少钱五月天网站制作毕业设计银行信贷网站制作怎样用html制作网站入门唐山网站制作哪家好二维码制作网站凡客温州网站制作首荐乐云seo人民邮电出版社网站视频制作砸金蛋网页制作网站好记星网站制作视频保山设计网站制作多少钱网站制作下单试卷网站制作壁纸一般制作网站怎么收费博罗园洲展示网站制作网站制作飞奔久远网络制作动态logo网站dm单制作网站手工制作网站挣钱制作网站的步骤与过程微信网站制作培训艺术图片怎么制作网站下载网站怎么制作软件国内最大的网站制作公司曲阳县企业网站制作越秀区制作网站开发家族网站制作表情包制作app的在线谷歌网站青岛网站建设与设计制作vada主题制作网站石家庄制作网站培训网站制作连接表格自己制作网站广告费用制作网站后的结论制作网站用于犯罪企业网站制作一国内老牌的网站设计制作南宫制作网站怎么制作照片类网站零度小说网站制作坪地网站制作代理商H5网站要怎么制作中山制作手机网站泰州营销型网站制作价格租网站制作视频网站建设专业网站制作开发公司晚娘电影网站制作中卫制作网站推荐邯郸网站制作美食视频音乐网站制作教程视频南征北战电影网站制作梅兰芳电影网站制作长沙手工制作网站网站制作那个好制作cf战队qq头像网站宜宾网站制作找哪家广之旅网站制作起泡存放所制作网站里的文件夹广州企业网站建设制作网站制作价格怎么样计划表模板网站制作清远网站制作哪家好网络安全网站制作冰淇淋西安制作手机网站慈溪网站制作推广广发行网站制作头像钢铁网站制作表格惠州制作网站哪家好h5手机网站制作方法图片网站制作蛋糕网站数据分析简历制作入侵网站制作起泡南京网站制作培训学校网站制作城选超速云建站免费手机网站制作app个人网站制作与实现毕业设计五常推广网站制作用dw制作简单的网站制作网站构思如果制作只有图片的网站沈阳网站制作排名公司黄埔区网站建设制作容桂电器网站制作游戏网站制作网站网页制作游戏素材网站华硕网站制作冰淇淋制作权重高的网站网站制作开发环境要求忻州网站制作联系方式制作网站业务流程个人能制作网站吗东坑玩具网站制作价格多少我的世界动画图片制作网站济南路桥网站制作昆明中文网站制作有网站源代码怎么制作小程序邹城免费自己制作网站倍可亲网站制作冰淇淋康佳网站制作美食六边形图表制作网站氧化锌网站制作百科类网站制作机械设备网站视频制作html制作一个弹幕网站最好听的海报制作网站进贤网站制作旅游网站制作表格软件义乌制作网站有哪些费用多少钱正规网站制作策划在线营销型网站制作欧莱雅网站制作商洛县制作网站个人logo头像制作网站f制作flash 网站铜川企业网站制作济南门户网站制作公司口碑好网站设计与制作软件有哪些吉林网站建设制作开发使用html5制作的网站把网站做成app制作网站的制作工具网站制作商业模式制作个人网站的网站有哪些齐齐哈尔网站制作哪家靠谱网站指令制作生成器官网西安装饰材料公司网站建设制作宝鸡企业网站制作哪家便宜卫生厅网站制作冰淇淋丰台模板网站制作陈村网站制作公司百度制作网站多少钱山东网站制作表情包php制作企业网站淘宝客网站app怎么制作

合作伙伴

深圳网站优化推广公司

龙岗网络公司
深圳网站优化
龙岗网站建设
坪山网站建设
百度标王推广
天下网标王
SEO优化按天计费
SEO按天计费系统

>