matplotlib:font_manager模块FontProperties类的使用(字体属性)

python中fontproperties_Python matplotlib 模块,font_manager() 实例源码 - 编程字典 def set_font(self, font_dict=None):"""Set the font and font properties.Parameters----------font_dict : dictA dict of keyword parameters to be passed to:class:`matplotlib.font_manager.FontProperties`.P... 阅读详情
AI摘要

本文介绍了Matplotlib库中FontProperties类的详细用法,包括字体类别、风格、粗细、大小、拉伸和变体等属性,并展示了如何通过实例化创建自定义字体和在图表文本中应用。通过实际案例展示了如何在matplotlib的文本和注解中灵活运用FontProperties对象。

FontProperties类概述

FontProperties类用于存储和操作字体的属性。matplotlib支持的字体属性基于W3C Cascading Style Sheet, Level 1 font specification,主要有以下6个:字体类别(family)、字体风格(style)、字体粗细(weight)、字体大小(size)、字体拉伸(stretch)和字体变体(variant)。
在这里插入图片描述

FontProperties类签名为:class matplotlib.font_manager.FontProperties(family=None, style=None, variant=None, weight=None, stretch=None, size=None, fname=None, math_fontfamily=None)

FontProperties类构造函数参数分为:其中字体的6种属性的初始取值均来自对应的rcParams参数。

  • family:字体类别。取值范围为{ 'sans-serif' , 'serif', 'cursive', 'fantasy', 'monospace'},默认值为'sans-serif'。每个取值都代表一类字体,在matplotlib中对应数据结构为字体列表,优先级按位置递减。每次在使用时,matplotlib会根据rcParams根据字体类别和优先级确定某字体。

    family解释
    sans-serif无衬线体
    serif衬线体
    cursive手写体
    fantasy符号字体
    monospace等宽字体
  • style:字体风格。取值范围为{ 'normal' , 'italic' , 'oblique'},默认值为'normal'。

    style解释
    normal正常
    italic斜体,包含斜体字符
    oblique斜体,简单的倾斜文本
  • variant:字体变体。取值为'normal' (默认)或 'small-caps'(小型大写字体)

  • stretch: 字体拉伸。[ 0-1000]的数值或{ 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal' , 'semi-expanded', 'expanded', 'extra-expanded' , 'ultra-expanded'},默认为'normal'。

  • weight:字体粗细。 [ 0-1000]的数值或{ 'ultralight', 'light', 'normal' , 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'},默认为'normal'。

  • size:字体大小。绝对字体大小或相对大小{ 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large' },默认值为10。

  • fname:通过字体文件的绝对路径指定特定的字体。值类型为字符串、类路径对象。

总结

根据FontProperties类的构造函数参数可知,一方面FontProperties类可以根据默认的6种字体属性,通过matplotlib的字体查找机制使用某个字体。另一方面,可以通过fname参数,根据字体名称(前提为该字体已加入系统字体列表)、字体的路径指定确定的字体。

案例:演示FontProperties对象的属性

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
from pprint import pprint

# 默认字体属性
f0 = fm.FontProperties()
# 设置family、size
f1 = fm.FontProperties('simhei',size=20)
# 设置fname、size
f2 = fm.FontProperties(fname='方正卡通简体.ttf',size=30)
pprint(vars(f0))
pprint(vars(f1))
pprint(vars(f2))

输出为:

{'_family': ['sans-serif'],
 '_file': None,
 '_size': 10.0,
 '_slant': 'normal',
 '_stretch': 'normal',
 '_variant': 'normal',
 '_weight': 'normal'}
{'_family': ['simhei'],
 '_file': None,
 '_size': 20.0,
 '_slant': 'normal',
 '_stretch': 'normal',
 '_variant': 'normal',
 '_weight': 'normal'}
{'_family': ['sans-serif'],
 '_file': '方正卡通简体.ttf',
 '_size': 30.0,
 '_slant': 'normal',
 '_stretch': 'normal',
 '_variant': 'normal',
 '_weight': 'normal'}

FontProperties对象的应用

在matplotlib中,text()、annoteate()、title()、suptitle()、xlabel()、ylabel()等与文本相关的函数均支持取值为 Text对象属性的**kwargs参数。其中fontproperties 或 font 或 font_properties参数的取值可以为FontProperties对象。

案例:应用FontProperties对象

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

plt.figure(figsize=(13, 9))
# 使用内置字体名称初始化
f1 = fm.FontProperties('simhei', size=20)
# 使用指定字体路径
f2 = fm.FontProperties(fname='方正卡通简体.ttf', size=30)
# 验证font参数
plt.text(0.5, 0.5, '文本', font=f1)
# 验证font_properties参数
plt.annotate('注解', (0.1, 0.1), font_properties=f1)
# 验证fontproperties参数
plt.title("标题", fontproperties=f2)
plt.xlabel("x轴", fontproperties=f2)
plt.ylabel("y轴", fontproperties=f2)

plt.show()

在这里插入图片描述

Matplotlib基础入门 1.Matplotlib三层 Matplotlib三层结构_xiaoyaGrace的博客-优快云博客 2.折线图 import matplotlib.pyplot as plt #画出某城市一周的温度变化 #%matplotlib inline 该语句处理某些环境的需要 #创建画布 figsize表示画布大小,dpi表示清晰度 plt.figure(figsize=(20,8),dpi=80) #绘制图片 plt.plot([1,2,3,4,5,6,7],[17,17,18,15,... 阅读详情

相关推荐

Matplotlib库常用函数总结

Matplotlib库常用函数总结 Matplotlib库由各种可视化类构成,内部结构复杂. matplotlib.pyplot是绘制各类可视化图形的命令字库,相当于快捷方式. pyplot的绘图区域 方法 说明 plt.subplot(nrows,ncols,plot_number) 在全局绘图区域中绘制一个分区体系,并定位到一个子绘图区域 绘图函数 plt.plot(x,y,format_string,**kwargs) x:X轴数据,列表或数组,可选 y:Y轴数据,列表或数组

qq_53226437的博客 7866

matplotlib的Text、FontProperties对象、字体(font)属性|中文字体的设置|图像标题、label字体的设置

matplotlib里面的Text对象字体的属性介绍,以及如何设置Axes.set_title()\ Axes.set_xlabel()\ Axes.set_ylabel()\ figure.suptitle() 里的字体属性,还有中文字体要怎么设置。

Laura_Luo的博客 8940

Python数据可视化进阶:用FontProperties精细控制matplotlib每个文本元素的字体样式

本文详细介绍了如何使用Python的matplotlib库中的FontProperties类精细控制每个文本元素的字体样式,包括标题、轴标签、刻度标签和图例等。特别强调了Times New Roman字体在学术出版物中的应用,以及如何通过FontProperties实现跨平台字体管理和性能优化,提升数据可视化的专业性和一致性。

weixin_30952535的博客 177

matplotlib显示中文字体的常用三种方法

(一)调用Fontproperties 1.1 调用Fontproperties方法介绍 1. 先从font_manager中导入FontProperties # 方法一 from matplotlib import font_manager # 方法二 from matplotlib.font_manager import FontProperties 2. 导入电脑中自带的 font 的路径,windows系统一般都是下面的路径 # 与上方方法一、二相对应 # 方法一 my_font = fon

源仔 9587

Matplotlib 3.8.2 科研绘图字体配置:3种方案实现中宋英Times New Roman

本文详细介绍了在Matplotlib 3.8.2中实现科研绘图字体配置的三种方案,包括全局rcParams配置、FontProperties对象级配置和使用mksci-font第三方库。这些方案帮助用户在中英文混排时实现中文使用宋体、英文使用Times New Roman的学术规范要求,提升图表的专业性和可读性。

weixin_33768481的博客 441

Matplotlib字体设置:中英文混排各用各的字体,告别豆腐块

数据可视化是数据分析和论文写作中的关键环节,而图表中的字体渲染直接关系到信息传达的清晰度。许多人在使用Matplotlib绘图时,常因默认字体不支持中文而遇到乱码或“豆腐块”问题。理解字体选择机制是解决问题的根本——Matplotlib依赖font_manager扫描系统字体,并通过rcParams控制字体族候选顺序。当同一文本中同时包含中英文时,需要借助字体回退(font fallback)机制,按字符逐个查找可用字形,从而实现中文用宋体、英文用Times New Roman的理想效果。该技术在量化分析报

weixin_31102231的博客 201

matplotlib中font_manager.FontProperties找不到路径中的字体

MAC系统 在使用matplotlib画图时,由于其默认不支持中文,所以有时候需要更换使用的字体,在使用 font_manager.FontProperties("/System/Library/Fonts/PingFang.ttc") 时路径中明明有相应的字体但却仍提示无法找到,原因可能是路径中的"/"被当做转意字符来处理了,只需更改代码为 font_manager.FontProp...

如切如磋,如琢如磨 8528

Matplotlib中文乱码终极解决方案:跨平台字体配置与深度解析

在数据可视化领域,字体渲染是决定图表专业性的关键环节。其核心原理在于绘图引擎需要根据字符编码,在指定的字体文件中找到对应的字形进行绘制。当默认字体库缺失特定字符集(如中文)时,就会出现乱码或方框,这直接影响了图表的信息传达效果与工程交付质量。尤其在需要生成报告、论文或商业仪表盘的应用场景中,确保文字正确显示是基础要求。本文聚焦于Matplotlib这一广泛使用的Python绘图库,针对其在不同操作系统(Windows、macOS、Linux)下的字体管理机制,提供了一套从动态探测系统字体、管理字体缓存到加载

weixin_30425949的博客 472

matplotlib折线图(字体设置-FontProperties、轴信息设置-x/ylabel、标题设置)

代码示例: ''' matplot1ib只显示英文,无法显示中文,需要修改matplot1ib的默认字体。通过matp7otlib下的font_ manager 可以解决 ''' import random from matplotlib import pyplot as plt from matplotlib import font_manager x = range(0,120) y = [random.randint(25,45) for i in range(120)] plt.figure(

caoxinjian423的博客 2706

【收藏】Python Matplotlib中如何导入自定义字体文件并应用到全局

通过matplotlib的font_manager中的fontManager的addfont方法来添加,输入一个本地的字体文件就可以。Python Matplotlib中如何导入自定义字体文件并应用到全局。字体文件免费下载,可以戳。

DZ Space 4808

F5 GTM DNS 实战指南:智能DNS的监控与健康检查机制

本文深入解析F5 BIG-IP GTM智能DNS的核心机制,重点阐述其监控与探针两大功能如何协同工作。监控器负责深度检查服务器应用健康,确保服务可用性;探针则实时测量网络路径质量,实现基于延迟的智能流量调度。文章通过实战配置步骤,指导如何构建逻辑架构、建立iQuery通信、配置业务级健康检查及探针,从而构建高可用、高性能的全局负载均衡解决方案。

weixin_29240711的博客 468

在 Jupyter Notebook 中解决 matplotlib 绘图中文乱码

在使用 Jupyter Notebook 进行数据可视化时,调用绘图模块时出现中文乱码问题。无论是图例、标题、坐标轴标签中只要含有中文字符,就会显示为一串乱码或方框,影响图表的可读性。该问题的出现主要是由于系统默认字体中不包含中文字体,而matplotlib在渲染时未找到支持中文的字体资源。

Mr数据杨 3050

潜行游戏设计:核心机制与关卡设计解析

潜行游戏作为动作游戏的重要分支,通过视觉遮蔽、声音传播和AI行为树等复杂系统,为玩家提供独特的策略体验。视觉隐蔽系统采用视野锥和光照值的双重判定,声学传播模型模拟距离衰减和材质穿透,而敌人AI行为树则包含巡逻、警戒和团队协作等状态节点。这些技术不仅提升了游戏的真实感和挑战性,还在《合金装备》《刺客信条》等经典作品中得到广泛应用。潜行游戏的关卡设计强调多路径拓扑结构和环境叙事元素,通过沙漏模型和动态难度调节,平衡自由度和开发成本。未来,基于ML的适应性AI和物理模拟的隐蔽系统将成为创新方向。

weixin_42497762的博客 179

Matplotlib 3.8 科研绘图字体配置:3种方案实现中英文字体分离(宋体+Times New Roman)

本文详细介绍了Matplotlib 3.8中实现科研绘图字体配置的3种方案,重点解决中英文字体分离(宋体+Times New Roman)的技术难题。从基础的全局RC参数配置到精准的FontProperties控制,再到专业的mksci-font解决方案,帮助科研人员轻松应对学术图表的字体规范要求,提升论文图表排版质量。

weixin_30243533的博客 544

什么是Merkle树?用“文件柜”类比理解区块链的核心技术

Merkle树是一种用于区块链的数据结构,像一个高效的“文件柜”,用于存储和验证大量交易数据。比特币通过Merkle树将交易哈希组织成树状结构,层层汇总,最终生成一个唯一的根哈希,存储在区块头中。这种设计大幅减少数据存储和验证成本,支持快速校验交易的完整性和存在性。Merkle树通过密码学保证数据不可篡改,广泛应用于比特币、区块链及其他分布式系统。它的优势在于高效、轻量和安全,尤其适合轻节点验证和数据同步。理解Merkle树就像掌握区块链的“索引秘籍”,是Web3世界的关键技术。

在路上的专栏 1192

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

无人机避障——4DMmvRadar三维点云坐标转换到无人机坐标系(三)

weixin_45390670的博客 1869

matplotlib的默认字体_matplotlib默认字体设置

使用matplotlib的pyplot时,是支持unicode的,但默认字体是英文字体,导致中文无法正常显示。解决方法有两种。一种是手动指定,在代码中from matplotlib.font_manager import FontPropertiesfont_song = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=15)使用...

weixin_39836803的博客 1241

WRF和WPS模型在Ubuntu系统上的安装与常见问题解决指南

本文详细介绍了在Ubuntu系统上安装WRF和WPS模型的完整教程,涵盖系统环境配置、依赖库安装、源代码编译以及常见问题的解决方案。重点解决了WPS编译中intmath.f文件的修改、环境变量设置和编译器兼容性等关键难点,帮助用户高效部署气象研究与预报模型。

weixin_29213525的博客 381

Matplotlib字体控制全解析:从原理到实践,打造专业级数据可视化图表

在数据可视化领域,图表的美观性与信息传达效率同等重要,而字体控制是实现这一目标的核心技术之一。其原理在于通过配置文本的字体家族、大小、粗细、风格等属性,来优化图表的可读性和专业性。掌握字体控制技术,能显著提升图表在学术论文、商业报告等场景下的表现力与可信度。本文聚焦于Python的Matplotlib库,深入剖析其文本系统的配置层级,涵盖rcParams全局设置、函数参数与FontProperties对象等关键方法,并针对中文乱码、PDF字体嵌入等常见痛点提供解决方案,旨在帮助数据分析师和科研人员高效解决字

weixin_30652897的博客 401

扬声器设计避坑指南:用Comsol分析反电动势对THD的影响(附案例文件)

本文深入探讨了扬声器设计中反电动势对总谐波失真的关键影响。通过COMSOL仿真,详细分析了BL值非线性、音圈电感变化等电磁-力-声耦合机制,并提供了从参数化建模到系统级优化的实战指南,帮助工程师精准量化并降低谐波失真,提升扬声器音质。

xx56789的博客 519

手把手教你用ObjectCRX进行Caxa二次开发:从零开始的环境搭建教程

本文是一份面向零基础初学者的Caxa二次开发实战指南,重点讲解如何使用ObjectCRX框架从零开始搭建开发环境。内容涵盖Visual Studio 2015版本锁定、ObjectCRX向导集成、项目创建、典型错误解决,并最终实现一个可在Caxa中运行的HelloWorld程序,帮助开发者快速入门并避开常见陷阱。

w3x4y的博客 509

Matplotlib字体控制全攻略:从基础设置到中文显示与出版级图表

在数据可视化中,字体控制是决定图表专业度的关键环节,它直接影响到图表的可读性与呈现效果。其原理在于通过配置字体属性来管理文本的渲染,这不仅是美化需求,更是工程实践的一部分,能确保图表在不同媒介(如屏幕、PDF、论文)上清晰一致。掌握字体控制的技术价值在于提升图表质量,避免因字体问题导致分析成果大打折扣,尤其在学术出版、商业报告等场景中至关重要。本文聚焦于matplotlib的字体系统,深入解析字体大小、粗细、样式等基础属性,并攻克中文显示等实战难题,提供从全局配置到局部精细调整的一站式解决方案,帮助读者打造

weixin_34379433的博客 318

FlexSim:FlexSim软件介绍与安装

在开始安装FlexSim之前,首先需要从FlexSim官方网站下载安装包。FlexSim提供不同版本的软件,包括教育版、专业版等,确保选择适合您需求的版本。下载页面通常会列出系统要求,包括操作系统、处理器、内存和硬盘空间,确保您的计算机满足这些要求。访问FlexSim官方网站。导航至下载页面。选择适合您需求的FlexSim版本。点击下载按钮,开始下载安装包。在开始构建模型之前,首先需要明确模型的目标。模型目标是指导模型设计和分析的核心,它定义了你希望通过模型解决的问题或探索的系统行为。

kkchenjj的博客 5802

python画图图例字体_Matplotlib如何设置图例的字体类型

通过prop参数将FontProperties对象(如下面的font)传递给ax.legend:import matplotlib.pyplot as pltimport numpy as npimport matplotlib.font_manager as font_managerfig, ax = plt.subplots()x = np.linspace(-10, 10, 100)ax.p...

weixin_39827034的博客 5299

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

matplotlib显示中文字体

由于我的小可爱怎么都解决不了matplotlib显示中文字体的问题,因此便花大半天时间帮她弄这玩意,话休闲叙,进入正题。 Error主要是SimSun这个宋体无法显示,改用stsong华文宋体即可 法一:设置fontproperties(推荐) plt.title('爱你', fontproperties='stsong') 原理:调用Axes库,Axes调用rcPara...

weixin_30549175的博客 666

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Matplotlib文字属性全解析:从字体、大小到旋转,打造专业图表

在数据可视化领域,图表不仅是数据的展示,更是信息传达的艺术。其核心原理在于通过视觉元素(如颜色、形状、文字)将抽象数据转化为直观洞察。文字排版作为图表的重要组成部分,直接影响图表的可读性与专业性,是提升数据叙事能力的关键技术。掌握字体管理、字号控制、粗细样式调整及旋转对齐等文字属性,能显著增强图表在不同媒介(如报告、演示文稿、学术出版)中的表现力与适应性。本文聚焦于matplotlib库中的文字属性控制,深入探讨如何通过精细调整字体、大小、粗细、方向与旋转,解决中文乱码、标签重叠等常见问题,并分享跨平台字体

weixin_33672109的博客 382
上一篇: matplotlib之pyplot模块——调整子图布局(subplots_adjust、tight_layout)
下一篇: 网络连接打印机故障一例(交换机与路由器级联问题)
mighty13
博客等级 码龄23年 728粉丝 438原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值