- Matplotlib 基础
- Matplotlib - 首页
- Matplotlib - 简介
- Matplotlib - 与 Seaborn 的比较
- Matplotlib - 环境设置
- Matplotlib - Anaconda 发行版
- Matplotlib - Jupyter Notebook
- Matplotlib - Pyplot API
- Matplotlib - 简单绘图
- Matplotlib - 保存图表
- Matplotlib - 标记
- Matplotlib - 图表
- Matplotlib - 风格
- Matplotlib - 图例
- Matplotlib - 颜色
- Matplotlib - 颜色图
- Matplotlib - 颜色图归一化
- Matplotlib - 选择颜色图
- Matplotlib - 颜色条
- Matplotlib - 文本
- Matplotlib - 文本属性
- Matplotlib - 子图标题
- Matplotlib - 图片
- Matplotlib - 图片蒙版
- Matplotlib - 注释
- Matplotlib - 箭头
- Matplotlib - 字体
- Matplotlib - 什么是字体?
- 全局设置字体属性
- Matplotlib - 字体索引
- Matplotlib - 字体属性
- Matplotlib - 比例尺
- Matplotlib - 线性和对数比例尺
- Matplotlib - 对称对数和 Logit 比例尺
- Matplotlib - LaTeX
- Matplotlib - 什么是 LaTeX?
- Matplotlib - 用于数学表达式的 LaTeX
- Matplotlib - 注释中的 LaTeX 文本格式
- Matplotlib - PostScript
- 启用注释中的 LaTeX 渲染
- Matplotlib - 数学表达式
- Matplotlib - 动画
- Matplotlib - 图元
- Matplotlib - 使用 Cycler 进行样式设置
- Matplotlib - 路径
- Matplotlib - 路径效果
- Matplotlib - 变换
- Matplotlib - 刻度和刻度标签
- Matplotlib - 弧度刻度
- Matplotlib - 日期刻度
- Matplotlib - 刻度格式化器
- Matplotlib - 刻度定位器
- Matplotlib - 基本单位
- Matplotlib - 自动缩放
- Matplotlib - 反转坐标轴
- Matplotlib - 对数坐标轴
- Matplotlib - Symlog
- Matplotlib - 单位处理
- Matplotlib - 带有单位的椭圆
- Matplotlib - 脊柱
- Matplotlib - 坐标轴范围
- Matplotlib - 坐标轴比例尺
- Matplotlib - 坐标轴刻度
- Matplotlib - 格式化坐标轴
- Matplotlib - Axes 类
- Matplotlib - 双坐标轴
- Matplotlib - Figure 类
- Matplotlib - 多图
- Matplotlib - 网格
- Matplotlib - 面向对象接口
- Matplotlib - PyLab 模块
- Matplotlib - Subplots() 函数
- Matplotlib - Subplot2grid() 函数
- Matplotlib - 锚定图元
- Matplotlib - 手动等高线
- Matplotlib - 坐标报告
- Matplotlib - AGG 滤镜
- Matplotlib - 缎带框
- Matplotlib - 填充螺旋线
- Matplotlib - Findobj 演示
- Matplotlib - 超链接
- Matplotlib - 图片缩略图
- Matplotlib - 使用关键字绘图
- Matplotlib - 创建 Logo
- Matplotlib - 多页 PDF
- Matplotlib - 多进程
- Matplotlib - 打印标准输出
- Matplotlib - 复合路径
- Matplotlib - Sankey 类
- Matplotlib - MRI 与 EEG
- Matplotlib - 样式表
- Matplotlib - 背景颜色
- Matplotlib - Basemap
- Matplotlib 事件处理
- Matplotlib - 事件处理
- Matplotlib - 关闭事件
- Matplotlib - 鼠标移动
- Matplotlib - 点击事件
- Matplotlib - 滚动事件
- Matplotlib - 按键事件
- Matplotlib - 选择事件
- Matplotlib - 透视镜
- Matplotlib - 路径编辑器
- Matplotlib - 多边形编辑器
- Matplotlib - 定时器
- Matplotlib - Viewlims
- Matplotlib - 缩放窗口
- Matplotlib 小部件
- Matplotlib - 光标小部件
- Matplotlib - 带注释的光标
- Matplotlib - 按钮小部件
- Matplotlib - 复选框
- Matplotlib - 套索选择器
- Matplotlib - 菜单小部件
- Matplotlib - 鼠标光标
- Matplotlib - 多光标
- Matplotlib - 多边形选择器
- Matplotlib - 单选按钮
- Matplotlib - RangeSlider
- Matplotlib - 矩形选择器
- Matplotlib - 椭圆选择器
- Matplotlib - 滑块小部件
- Matplotlib - 区间选择器
- Matplotlib - 文本框
- Matplotlib 绘图
- Matplotlib - 条形图
- Matplotlib - 直方图
- Matplotlib - 饼图
- Matplotlib - 散点图
- Matplotlib - 箱线图
- Matplotlib - 小提琴图
- Matplotlib - 等高线图
- Matplotlib - 3D 绘图
- Matplotlib - 3D 等高线
- Matplotlib - 3D 线框图
- Matplotlib - 3D 表面图
- Matplotlib - Quiver 图
- Matplotlib 有用资源
- Matplotlib - 快速指南
- Matplotlib - 有用资源
- Matplotlib - 讨论
Matplotlib - 字体
字体在定制绘图中的文本元素方面起着至关重要的作用。我们可以控制字体样式、大小、系列和其他属性,以增强可视化效果中文本的外观和可读性。
在 Matplotlib 库中,“字体”指的是用于渲染绘图和可视化效果中文本的字体类型。字体在定制文本元素(例如绘图中的标签、标题、注释和图例)的外观方面发挥着重要作用。
Matplotlib 库中字体的关键方面
字体系列 - 指字体的样式或类别。常见的字体系列包括衬线体、非衬线体、等宽字体等。每个系列都有其独特的视觉特征。
字体样式 - 确定文本的外观,例如普通、斜体或倾斜。
字体粗细 - 指定字体的粗细程度,从普通到不同程度的粗细。
在 Matplotlib 中控制字体
设置字体属性 - 我们可以使用参数(例如`fontsize`、`fontstyle`、`fontweight`和`fontfamily`)在诸如`plt.xlabel()`、`plt.title()`等函数中控制绘图中文本元素的字体属性。
plt.xlabel('X-axis Label', fontsize=12, fontstyle='italic', fontweight='bold', fontfamily='serif')
全局字体配置 - 使用`plt.rcParams`全局调整整个绘图的字体属性,使我们可以设置默认字体设置以保持一致性。
plt.rcParams['font.family'] = 'sans-serif' plt.rcParams['font.size'] = 12
字体在可视化中的重要性
可读性 - 字体的选择会显著影响绘图中文本元素的可读性。选择合适的字体可以提高可视化信息的清晰度。
美观性 - 字体通过影响绘图的视觉吸引力和演示效果,有助于绘图的整体美观性。
强调和样式 - 不同的字体传达不同的语气和样式,允许用户强调特定元素或创建特定的视觉氛围。
全局设置字体属性
我们可以使用 plt.rcParams 全局配置整个绘图的字体属性。
plt.rcParams['font.family'] = 'sans-serif' plt.rcParams['font.size'] = 12
在接下来的章节中,让我们详细了解字体的每个参数。
Matplotlib 中常见的与字体相关的函数
以下是 matplotlib 库中常见的与字体相关的函数。
plt.rcParam - Matplotlib 中的 plt.rcParams 是一个类似字典的对象,允许你全局配置各种设置,这些设置会影响绘图和图形的外观和行为。它充当 Matplotlib 的中央配置系统,提供了一种方便的方式来设置可视化中不同元素的默认参数。
设置字体属性的函数 - 我们可以使用 plt.xlabel()、plt.ylabel() 和 plt.title() 函数设置坐标轴标签和标题的字体属性。
将字体属性设置为注释 - 同样,我们可以使用 plt.text() 和 plt.annotate() 函数设置注释和文本元素的字体属性。
列出所有可用的字体
要获取当前可用于 matplotlib 的所有字体的列表,我们可以使用 font_manager.findSystemFonts() 方法,如下所示:
from matplotlib import font_manager print("List of all fonts currently available in the matplotlib:") print(*font_manager.findSystemFonts(fontpaths=None, fontext='ttf'), sep="")
上述程序会生成以下输出:
List of all fonts currently available in the matplotlib: C:\WINDOWS\Fonts\PERBI___.TTFC:\WINDOWS\Fonts\ARIALUNI.TTFC:\Windows\Fonts\BRLNSR.TTFC:\Windows\Fonts\calibri.ttfC:\WINDOWS\Fonts\BOD_PSTC.TTFC:\WINDOWS\Fonts\WINGDNG3.TTFC:\Windows\Fonts\segoeuisl.ttfC:\Windows\Fonts\HATTEN.TTFC:\WINDOWS\Fonts\segoepr.ttfC:\Windows\Fonts\TCCM____.TTFC:\Windows\Fonts\BOOKOS.TTFC:\Windows\Fonts\BOD_B.TTFC:\WINDOWS\Fonts\corbelli.ttfC:\WINDOWS\Fonts\TEMPSITC.TTFC:\WINDOWS\Fonts\arial.ttfC:\WINDOWS\Fonts\cour.ttfC:\Windows\Fonts\OpenSans-Semibold.ttfC:\WINDOWS\Fonts\palai.ttfC:\Windows\Fonts\ebrimabd.ttfC:\Windows\Fonts\taileb.ttfC:\Windows\Fonts\SCHLBKI.TTFC:\Windows\Fonts\AGENCYR.TTFC:\Windows\Fonts\tahoma.ttfC:\Windows\Fonts\ARLRDBD.TTFC:\WINDOWS\Fonts\corbeli.ttfC:\WINDOWS\Fonts\arialbd.ttfC:\WINDOWS\Fonts\LTYPEBO.TTFC:\WINDOWS\Fonts\LTYPEB.TTFC:\WINDOWS\Fonts\BELLI.TTFC:\WINDOWS\Fonts\YuGothR.ttcC:\WINDOWS\Fonts\OpenSans-Semibold.ttfC:\Windows\Fonts\trebucbd.ttfC:\WINDOWS\Fonts\OCRAEXT.TTFC:\WINDOWS\Fonts\JUICE___.TTFC:\WINDOWS\Fonts\comic.ttfC:\Windows\Fonts\VIVALDII.TTFC:\Windows\Fonts\Candarali.ttfC:\WINDOWS\Fonts\comici.ttfC:\WINDOWS\Fonts\RAVIE.TTFC:\WINDOWS\Fonts\LeelUIsl.ttfC:\Windows\Fonts\ARIALNB.TTFC:\WINDOWS\Fonts\LSANSDI.TTFC:\Windows\Fonts\seguibl.ttfC:\WINDOWS\Fonts\himalaya.ttfC:\WINDOWS\Fonts\TCBI___ .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. TTFC:\Windows\Fonts\BOD_BLAR.TTFC:\WINDOWS\Fonts\ebrima.ttfC:\Windows\Fonts\LTYPEB.TTFC:\WINDOWS\Fonts\FRABKIT.TTFC:\WINDOWS\Fonts\REFSAN.TTFC:\WINDOWS\Fonts\gadugi.ttfC:\Windows\Fonts\times.ttfC:\WINDOWS\Fonts\MTCORSVA.TTFC:\WINDOWS\Fonts\ERASDEMI.TTFC:\Windows\Fonts\himalaya.ttfC:\WINDOWS\Fonts\georgiai.ttf
列出所有字体系列(或字体名称)
在这里,使用以下代码,我们将获得字体系列列表,即字体名称。
from matplotlib import font_manager print("List of all fonts currently available in the matplotlib:") print(*font_manager.findSystemFonts(fontpaths=None, fontext='ttf'), sep="")
上述程序会生成以下输出:
List of all fonts currently available in the matplotlib: cmsy10 STIXGeneral STIXSizeThreeSym DejaVu Sans Mono STIXGeneral STIXSizeOneSym ....................................................................... ITC Bookman Computer Modern Times Palatino New Century Schoolbook
控制字体属性
字体大小 (`fontsize`)
使用诸如plt.xlabel()、plt.ylabel()、plt.title()等函数中的fontsize参数设置文本元素的大小。
示例
在这个示例中,我们通过将fontsize参数传递给plt.xlabel()、plt.ylabel()和plt.title()函数来设置文本的大小。
import matplotlib.pyplot as plt # Creating a data x = [i for i in range(10,40)] y = [i for i in range(30,60)] # Creating a plot plt.scatter(x,y,color = 'blue') plt.xlabel('X-axis cube values', fontsize = 10) plt.ylabel('Y-axis cube values', fontsize = 12) plt.title('plot with defined font size') plt.show()
输出
字体样式 (`fontstyle`)
我们可以为要在创建的绘图上使用的字体选择字体样式,例如“normal”、“italic”或“oblique”。
示例
在这里,我们通过将 fontstyle 参数作为'normal'、'italic'或'oblique'传递给plt.xlabel()、plt.ylabel()和plt.title()来设置我们在绘图上显示的字体的字体样式。
import matplotlib.pyplot as plt # Creating a data x = [i for i in range(10,40)] y = [i for i in range(30,60)] # Creating a plot plt.scatter(x,y,color = 'blue') plt.xlabel('X-axis cube values', fontsize = 10) plt.ylabel('Y-axis cube values', fontsize = 12) plt.title('plot with defined font size') plt.show()
输出
字体粗细 (`fontweight`)
使用诸如'normal'、'bold'或数值(例如400、700等)调整字体的粗细。
示例
import matplotlib.pyplot as plt # Creating a data x = [i for i in range(10,40)] y = [i for i in range(30,60)] # Creating a plot plt.scatter(x,y,color = 'blue') plt.xlabel('X-axis cube values', fontweight='bold') plt.ylabel('Y-axis cube values', fontweight='bold') plt.title('plot with defined font size',fontweight='bold') plt.show()
输出
更改字体系列
我们可以修改 Matplotlib 库中各种文本元素的字体系列。下面提到一些可用的字体系列。
'serif' - 衬线字体,例如 Times New Roman
'sans-serif' - 非衬线字体,例如 Arial
'monospace' - 等宽字体,例如 Courier New
更改字体大小
我们可以使用 plt.text() 函数更改字体大小。
示例
import matplotlib.pyplot as plt plt.plot([1, 2, 4], [1, 2, 4]) plt.text(2, 3, "y=x", color='red', fontsize=20) # Increase fontsize by increasing value. plt.show()
输出
将字体嵌入 Matplotlib 生成的 PDF 中
要将字体嵌入 Matplotlib 生成的 PDF 中,我们可以使用 rc.Params['pdf.fonttype']=42。
示例
import numpy as np from matplotlib import pyplot as plt, font_manager as fm plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True plt.rcParams['pdf.fonttype'] = 42 fig, ax = plt.subplots() x = np.random.rand(100) y = np.random.rand(100) ax.scatter(x, y, c=y, marker="v") fprop = fm.FontProperties(fname='C:\Windows\Fonts\MISTRAL.TTF') ax.set_title('Scatter Plot With Random Points', fontproperties=fprop, size=20, fontweight="bold") plt.savefig("demo.pdf")
输出
当我们执行代码时,它将以“demo.pdf”作为文件名将以下绘图保存在项目目录中。
全局设置字体属性
在 Matplotlib 库中全局设置字体属性涉及使用plt.rcParams方法配置整个绘图的默认字体设置。当我们想要将一致的字体样式、大小或系列应用于可视化效果中的所有文本元素而无需为每个组件分别指定它们时,这非常有用。
重要的是要注意,我们可以根据我们的喜好和我们想要在绘图中实现的视觉样式来定制这些设置。我们可以调整值以匹配我们所需的字体样式、大小和系列,以确保可视化效果的一致性和美观性。
以下是我们可以使用plt.rcParams方法进行的不同设置。
plt.rcParams['font.family'] = font_name
这将设置文本元素的默认字体系列,例如'sans-serif'。我们可以将 font_name 替换为可用的字体系列,例如'serif'、'monospace'或特定字体名称。
示例
在这个示例中,我们尝试使用plt.rcParams['font.family']将字体系列设置为'sans-serif'。
import matplotlib.pyplot as plt # Set font properties globally plt.rcParams['font.family'] = 'sans-serif' # Create a plot plt.plot([1, 2, 3], [4, 5, 6]) plt.xlabel('X-axis Label') plt.ylabel('Y-axis Label') plt.title('Font Family setting') plt.show()
输出
plt.rcParams['font.size'] = font_size
我们可以根据需要以数值指定文本元素的默认字体大小。这确保了所有文本元素都使用此字体大小,除非为特定组件覆盖。
示例
在这个例子中,我们将字体大小指定为8磅,用于plt.rcParams['font.size'],以便在整个绘图中全局显示字体大小。
import matplotlib.pyplot as plt # Set font properties globally plt.rcParams['font.size'] = 8 # Create a plot plt.plot([1, 2, 3], [4, 5, 6]) plt.xlabel('X-axis Label') plt.ylabel('Y-axis Label') plt.title('Font Size setting') plt.show()
输出
plt.rcParams['font.style'] = 'fontstyle'
我们可以根据自己的兴趣,定义字体样式,例如斜体等,用于plt.rcParams['font.style']。这会将定义的外观应用于整个绘图中的文本元素。
示例
在这个例子中,我们将字体样式指定为斜体,用于plt.rcParams['font.style']。
import matplotlib.pyplot as plt # Set font properties globally plt.rcParams['font.style'] = 'italic' # Create a plot plt.plot([1, 2, 3], [4, 5, 6]) plt.xlabel('X-axis Label') plt.ylabel('Y-axis Label') plt.title('Font Style setting') plt.show()
输出
plt.rcParams['font.weight'] = font_weight
通过使用这个,我们可以设置字体粗细,例如'粗体'等。这使得文本元素中的字符根据用户需求以定义的样式显示。
示例
在这个例子中,我们将字体粗细指定为粗体,用于plt.rcParams['font.weight']。
import matplotlib.pyplot as plt # Set font properties globally plt.rcParams['font.weight'] = 'bold' # Create a plot plt.plot([1, 2, 3], [4, 5, 6]) plt.xlabel('X-axis Label') plt.ylabel('Y-axis Label') plt.title('Font weight setting') plt.show()
输出
注意 − 通过使用plt.rcParams全局设置这些参数,我们可以确保这些默认字体属性应用于所有Matplotlib绘图中的文本元素。当我们创建标签、标题或其他文本组件时,它们将继承这些全局设置,除非我们在本地指定不同的属性。
更改Matplotlib颜色条标签的字体属性
在这个例子中,我们正在更改matplotlib颜色条标签的字体属性。
示例
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x, y = np.mgrid[-1:1:100j, -1:1:100j] z = (x + y) * np.exp(-5.0 * (x ** 2 + y ** 2)) plt.imshow(z, extent=[-1, 1, -1, 1]) cb = plt.colorbar(label='my color bar label') plt.show()
输出
设置绘图画布的大小
在这个例子中,我们正在设置matplotlib中绘图画布的大小。
示例
import numpy as np from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(-2, 2, 100) y = np.sin(x) plt.plot(x, y) plt.show()
输出
使用Matplotlib自动调整Seaborn热力图中的字体大小
在这里,我们使用Matplotlib库自动调整seaborn热力图中的字体大小。
示例
import numpy as np import seaborn as sns from matplotlib import pyplot as plt import pandas as pd plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True d = { 'y=1/x': [1 / i for i in range(1, 10)], 'y=x': [i for i in range(1, 10)], 'y=x^2': [i * i for i in range(1, 10)], 'y=x^3': [i * i * i for i in range(1, 10)] } df = pd.DataFrame(d) ax = sns.heatmap(df, vmax=1) plt.xlabel('Mathematical Expression', fontsize=16) plt.show()
输出
设置Matplotlib轴图例的字体大小
在这个例子中,我们正在设置matplotlib轴图例的字体大小。
示例
import numpy as np from matplotlib import pyplot as plt import matplotlib plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(1, 10, 50) y = np.sin(x) plt.plot(x, y, c="red", lw=7, label="y=sin(x)") plt.title("Sine Curve") matplotlib.rcParams['legend.fontsize'] = 20 plt.legend(loc=1) plt.show()
输出
修改Matplotlib-venn中的字体大小
要使用Matplotlib-venn,首先我们必须使用下面的代码安装包。如果之前已经安装,我们可以直接导入。
pip install matplotlib-venn
示例
在这个例子中,我们使用set_fontsize()方法修改Matplotlib-venn中的字体大小。
from matplotlib import pyplot as plt from matplotlib_venn import venn3 plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True set1 = {'a', 'b', 'c', 'd'} set2 = {'a', 'b', 'e'} set3 = {'a', 'd', 'f'} out = venn3([set1, set2, set3], ('Set1', 'Set2', 'Set3')) for text in out.set_labels: text.set_fontsize(25) for text in out.subset_labels: text.set_fontsize(12) plt.show()
输出
更改xticks字体大小
要更改matplotlib绘图中xticks的字体大小,我们可以使用fontsize参数。
示例
from matplotlib import pyplot as plt import numpy as np # Set the figure size plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # x and y data points x = np.linspace(-5, 5, 100) y = np.sin(x) plt.plot(x, y) # Set the font size of xticks plt.xticks(fontsize=25) # Display the plot plt.show()