用Python进行AI数据分析进阶教程33:
Matplotlib图表的定制
关键词:标题定制、坐标轴标签、图例设置、颜色控制、字体样式
摘要:本文详细介绍了 Matplotlib 图表的定制方法,涵盖标题、坐标轴标签、图例、颜色和字体等核心内容。文章通过多个示例演示了如何使用 plt.title()、plt.xlabel()、plt.ylabel()、plt.legend() 等函数进行图表元素的个性化设置,包括位置调整、字体样式修改、标签旋转、坐标轴范围设定等。同时强调了在多数据系列情况下图例的重要性,以及如何通过颜色名称、十六进制码或 RGB 值来区分不同数据系列。此外,还介绍了利用 plt.rcParams 进行全局字体设置的方法,确保图表中文显示正常并避免乱码问题。整体目标是提升图表的专业性和可读性,帮助用户更好地传达数据信息。
👉 欢迎订阅🔗
《用Python进行AI数据分析进阶教程》专栏
《AI大模型应用实践进阶教程》专栏
《Python编程知识集锦》专栏
《字节跳动旗下AI制作抖音视频》专栏
《智能辅助驾驶》专栏
《工具软件及IT技术集锦》专栏
在使用 Matplotlib 绘制图表时,除了基本的图表绘制,还可以对图表进行各种定制,以使其更具可读性和专业性。下面从标题、坐标轴标签、图例、颜色、字体等方面细致讲解图表定制,同时提示关键点和注意点,并给出示例及重点语句解释。
一、标题定制
1、关键点
● 位置与对齐:可通过 loc 参数指定标题的位置('left'、'center'、'right')。
● 字体样式:可使用 fontdict 参数设置标题的字体、大小、颜色等。
2、注意点
● 标题内容:应简洁明了地概括图表的主题。
● 字体大小:要根据图表的大小和复杂程度选择合适的字体大小,避免过大或过小。
3、示例代码
Python脚本
# 导入 matplotlib 库中的 pyplot 模块,并将其重命名为 plt
# pyplot 模块提供了一系列用于绘制图表的函数,方便我们创建各种可视化图形
import matplotlib.pyplot as plt
# 准备数据
# 定义一个列表 x,作为折线图的 x 轴数据,代表自变量
# 这里 x 包含 5 个整数,分别为 1、2、3、4、5
x = [1, 2, 3, 4, 5]
# 定义一个列表 y,作为折线图的 y 轴数据,代表因变量
# y 中的元素与 x 中的元素一一对应,呈现出 y = 2x 的线性关系
y = [2, 4, 6, 8, 10]
# 绘制折线图
# 使用 plt.plot() 函数,传入 x 和 y 数据来绘制折线图
# 该函数会根据 x 和 y 列表中的对应元素,在坐标系中绘制出相应的点,然后用线段连接这些点形成折线
plt.plot(x, y)
# 定制标题
# 创建一个字典 title_font,用于设置标题的字体样式
# 'family': 'serif' 表示字体家族为衬线字体,这种字体通常有装饰性的笔画
# 'color': 'blue' 表示标题的颜色为蓝色
# 'size': 20 表示标题的字体大小为 20
title_font = {'family': 'serif', 'color': 'blue', 'size': 20}
# 使用 plt.title() 函数为图表添加标题
# 'Customized Line Plot' 是标题的具体内容
# fontdict=title_font 表示使用 title_font 字典中定义的字体样式来显示标题
# loc='left' 表示将标题放置在图表的左侧
plt.title('Customized Line Plot', fontdict=title_font, loc='left')
# 显示图表
# 使用 plt.show() 函数将绘制好的带有定制标题的折线图显示出来
# 运行此语句后,会弹出一个窗口展示最终的图表
plt.show()
输出结果解释
运行上述代码后,会弹出一个窗口显示折线图,具体输出特征如下:
● 折线图主体:在坐标系中,会有一条折线连接点 (1, 2)、(2, 4)、(3, 6)、(4, 8) 和 (5, 10),因为这是根据 x 和 y 列表中的数据绘制的。
● 标题:在图表的左侧会显示标题 Customized Line Plot,标题的字体为衬线字体,颜色是蓝色,字体大小为 20。
重点语句解释
● title_font = {'family': 'serif', 'color': 'blue', 'size': 20}:定义一个字典 title_font,用于设置标题的字体样式,包括字体家族为 serif,颜色为蓝色,大小为 20。
● plt.title('Customized Line Plot', fontdict=title_font, loc='left'):为图表添加标题,标题内容为 'Customized Line Plot',使用 fontdict 中的字体样式,标题位置在左侧。
二、坐标轴标签定制
1、关键点
● 标签内容:应准确描述坐标轴所代表的含义。
● 字体样式:同样可使用 fontdict 参数设置坐标轴标签的字体、大小、颜色等。
2、注意点
● 标签旋转:当标签内容较长时,可通过 rotation 参数旋转标签以避免重叠。
● 坐标轴范围:可使用 plt.xlim() 和 plt.ylim() 函数设置坐标轴的范围。
3、示例代码
Python脚本
# 导入 matplotlib 库中的 pyplot 模块,使用别名 plt 方便后续调用绘图函数
import matplotlib.pyplot as plt
# 准备数据
# 定义列表 x 作为折线图的 x 轴数据,代表自变量
# 包含 5 个整数,分别为 1、2、3、4、5
x = [1, 2, 3, 4, 5]
# 定义列表 y 作为折线图的 y 轴数据,代表因变量
# 元素与 x 中的元素一一对应,呈现 y = 2x 的线性关系
y = [2, 4, 6, 8, 10]
# 绘制折线图
# 使用 plt.plot() 函数,传入 x 和 y 数据
# 函数会根据 x 和 y 中的对应元素,在坐标系中绘制点并连接成折线
plt.plot(x, y)
# 定制坐标轴标签
# 创建字典 label_font,用于设置坐标轴标签的字体样式
# 'family': 'sans-serif' 表示字体家族为无衬线字体
# 'color': 'green' 表示标签颜色为绿色
# 'size': 12 表示标签字体大小为 12
label_font = {'family': 'sans-serif', 'color': 'green', 'size': 12}
# 使用 plt.xlabel() 函数为 x 轴添加标签
# 'X-axis Label' 是标签的具体内容
# fontdict=label_font 表示使用 label_font 字典中的字体样式显示标签
plt.xlabel('X-axis Label', fontdict=label_font)
# 使用 plt.ylabel() 函数为 y 轴添加标签
# 'Y-axis Label' 是标签的具体内容
# fontdict=label_font 表示使用 label_font 字典中的字体样式显示标签
# rotation=0 表示标签不旋转,默认情况下 y 轴标签是垂直显示的,设置为 0 后水平显示
plt.ylabel('Y-axis Label', fontdict=label_font, rotation=0)
# 设置坐标轴范围
# 使用 plt.xlim() 函数设置 x 轴的范围
# 参数 0 和 6 表示 x 轴的最小值为 0,最大值为 6
plt.xlim(0, 6)
# 使用 plt.ylim() 函数设置 y 轴的范围
# 参数 0 和 12 表示 y 轴的最小值为 0,最大值为 12
plt.ylim(0, 12)
# 显示图表
# 使用 plt.show() 函数将绘制好的带有定制坐标轴标签和指定范围的折线图显示出来
# 运行此语句后,会弹出一个窗口展示最终的图表
plt.show()
输出结果解释
运行上述代码后,会弹出一个窗口显示折线图,具体特征如下:
● 折线图主体:在坐标系中存在一条连接点 (1, 2)、(2, 4)、(3, 6)、(4, 8) 和 (5, 10) 的折线,这是由 x 和 y 数据确定的。
● 坐标轴标签:
○ x 轴下方会显示标签 X-axis Label,字体为无衬线字体,颜色是绿色,大小为 12。
○ y 轴左侧会显示水平的标签 Y-axis Label,同样使用无衬线字体、绿色、大小为 12。
● 坐标轴范围:
○ x 轴的刻度范围从 0 到 6。
○ y 轴的刻度范围从 0 到 12。
重点语句解释
● label_font = {'family': 'sans-serif', 'color': 'green', 'size': 12}:定义一个字典 label_font,用于设置坐标轴标签的字体样式,包括字体家族为 sans-serif,颜色为绿色,大小为 12。
● plt.xlabel('X-axis Label', fontdict=label_font):为 x 轴添加标签,标签内容为 'X-axis Label',使用 label_font 中的字体样式。
● plt.ylabel('Y-axis Label', fontdict=label_font, rotation=0):为 y 轴添加标签,标签内容为 'Y-axis Label',使用 label_font 中的字体样式,rotation=0 表示标签不旋转。
● plt.xlim(0, 6) 和 plt.ylim(0, 12):分别设置 x 轴和 y 轴的范围为 0 到 6 和 0 到 12。
三、图例定制
1、关键点
● 位置:可通过 loc 参数指定图例的位置,如 'upper right'、'lower left' 等。
● 样式:可使用 frameon 参数控制图例是否有边框,fontsize 参数设置图例字体大小。
2、注意点
● 标签一致性:在绘制图表时使用 label 参数为每个数据系列添加标签,确保图例中的标签与图表中的数据系列对应。
● 图例重叠:当图表中有多个数据系列时,要注意图例的位置,避免与图表内容重叠。
3、示例代码
Python脚本
# 导入 matplotlib 库中的 pyplot 模块,使用别名 plt 方便后续调用绘图函数
import matplotlib.pyplot as plt
# 准备数据
# 定义列表 x 作为折线图的 x 轴数据,代表自变量
# 包含 5 个整数,分别为 1、2、3、4、5
x = [1, 2, 3, 4, 5]
# 定义列表 y1 作为第一条折线图的 y 轴数据,代表因变量
# 元素与 x 中的元素一一对应,呈现 y = 2x 的线性关系
y1 = [2, 4, 6, 8, 10]
# 定义列表 y2 作为第二条折线图的 y 轴数据,代表因变量
# 元素与 x 中的元素一一对应,呈现 y = 2x - 1 的线性关系
y2 = [1, 3, 5, 7, 9]
# 绘制折线图
# 使用 plt.plot() 函数绘制第一条折线图
# x 是 x 轴数据,y1 是 y 轴数据
# label='Line 1' 为这条折线添加一个标签,用于在图例中显示
plt.plot(x, y1, label='Line 1')
# 使用 plt.plot() 函数绘制第二条折线图
# x 是 x 轴数据,y2 是 y 轴数据
# label='Line 2' 为这条折线添加一个标签,用于在图例中显示
plt.plot(x, y2, label='Line 2')
# 定制图例
# 使用 plt.legend() 函数显示图例
# loc='upper left' 指定图例的位置在图表的左上角
# frameon=False 表示图例不显示边框
# fontsize=10 表示图例中文字的字体大小为 10
plt.legend(loc='upper left', frameon=False, fontsize=10)
# 显示图表
# 使用 plt.show() 函数将绘制好的带有图例的折线图显示出来
# 运行此语句后,会弹出一个窗口展示最终的图表
plt.show()
输出结果解释
运行上述代码后,会弹出一个窗口显示折线图,具体特征如下:
● 折线图主体:
○ 图表中会有两条折线。第一条折线连接点 (1, 2)、(2, 4)、(3, 6)、(4, 8) 和 (5, 10),对应 x 和 y1 的数据。
○ 第二条折线连接点 (1, 1)、(2, 3)、(3, 5)、(4, 7) 和 (5, 9),对应 x 和 y2 的数据。
● 图例:
○ 在图表的左上角会显示一个无框的图例。
○ 图例中有两个条目,分别为 Line 1 和 Line 2,用于标识两条折线。
○ 图例中文字的字体大小为 10。
重点语句解释
● plt.plot(x, y1, label='Line 1') 和 plt.plot(x, y2, label='Line 2'):在绘制折线图时,使用 label 参数为每个数据系列添加标签,方便在图例中显示。
● plt.legend(loc='upper left', frameon=False, fontsize=10):显示图例,位置在左上角,frameon=False 表示图例没有边框,fontsize=10 表示图例字体大小为 10。
四、颜色定制
1、关键点
● 颜色表示:可使用颜色名称(如 'red'、'blue')、十六进制颜色码(如 '#FF0000')或 RGB 元组(如 (1, 0, 0))来指定颜色。
● 数据系列区分:为不同的数据系列选择不同的颜色,以便清晰区分。
2、注意点
● 颜色搭配:要考虑颜色的对比度和协调性,避免使用过于相近或刺眼的颜色。
3、示例代码
Python脚本
# 导入 matplotlib 库中的 pyplot 模块,将其重命名为 plt
# pyplot 提供了类似于 MATLAB 的绘图接口,方便我们创建各种图表
import matplotlib.pyplot as plt
# 准备数据
# 定义一个列表 x,作为折线图的 x 轴数据,代表自变量
# 这里 x 包含 5 个整数,分别为 1、2、3、4、5
x = [1, 2, 3, 4, 5]
# 定义一个列表 y1,作为第一条折线图的 y 轴数据,代表因变量
# y1 中的元素与 x 中的元素一一对应,呈现出 y = 2x 的线性关系
y1 = [2, 4, 6, 8, 10]
# 定义一个列表 y2,作为第二条折线图的 y 轴数据,代表因变量
# y2 中的元素与 x 中的元素一一对应,呈现出 y = 2x - 1 的线性关系
y2 = [1, 3, 5, 7, 9]
# 绘制折线图,定制颜色
# 使用 plt.plot() 函数绘制第一条折线图
# x 是 x 轴数据,y1 是 y 轴数据
# color='red' 指定第一条折线的颜色为红色
plt.plot(x, y1, color='red')
# 使用 plt.plot() 函数绘制第二条折线图
# x 是 x 轴数据,y2 是 y 轴数据
# color='#00FF00' 指定第二条折线的颜色为十六进制颜色码 #00FF00 所代表的绿色
plt.plot(x, y2, color='#00FF00')
# 显示图表
# 使用 plt.show() 函数将绘制好的两条带有定制颜色的折线图显示出来
# 运行此语句后,会弹出一个窗口展示最终的图表
plt.show()
输出结果解释
运行上述代码后,会弹出一个窗口显示折线图,具体输出特征如下:
● 折线图主体:
○ 有两条折线展示在坐标系中。
○ 第一条折线通过连接点 (1, 2)、(2, 4)、(3, 6)、(4, 8) 和 (5, 10) 形成,颜色为红色。
○ 第二条折线通过连接点 (1, 1)、(2, 3)、(3, 5)、(4, 7) 和 (5, 9) 形成,颜色为绿色(由十六进制颜色码 #00FF00 确定)。
● 坐标轴:坐标轴会根据 x、y1 和 y2 的数据范围自动设置合适的刻度范围和标签。
重点语句解释
● plt.plot(x, y1, color='red'):绘制第一条折线图,颜色为红色。
● plt.plot(x, y2, color='#00FF00'):绘制第二条折线图,颜色为十六进制颜色码 #00FF00 表示的绿色。
五、字体定制
1、关键点
● 全局设置:可使用 plt.rcParams 全局设置字体的相关属性,如字体家族、大小等。
● 局部设置:在具体的标题、坐标轴标签、图例等定制中,也可使用 fontdict 参数局部设置字体样式。
2、注意点
● 字体可用性:要确保所使用的字体在系统中可用,否则可能会使用默认字体。
3、示例代码
Python脚本
# 导入 matplotlib 库中的 pyplot 模块,使用别名 plt 方便后续调用绘图函数
import matplotlib.pyplot as plt
# 全局设置字体
# plt.rcParams 是一个字典,用于存储 matplotlib 的全局配置参数
# 'font.family' 键对应的值用于设置字体家族
# 将其设置为 'SimHei',即黑体,这样在图表中使用中文时能正常显示,避免乱码问题
plt.rcParams['font.family'] = 'SimHei' # 设置中文字体为黑体
# 'font.size' 键对应的值用于设置字体的大小
# 将其设置为 14,意味着后续图表中的文字(如标题、坐标轴标签等)默认字体大小为 14
plt.rcParams['font.size'] = 14
# 准备数据
# 定义列表 x 作为折线图的 x 轴数据,代表自变量
# 包含 5 个整数,分别为 1、2、3、4、5
x = [1, 2, 3, 4, 5]
# 定义列表 y 作为折线图的 y 轴数据,代表因变量
# 元素与 x 中的元素一一对应,呈现 y = 2x 的线性关系
y = [2, 4, 6, 8, 10]
# 绘制折线图
# 使用 plt.plot() 函数,传入 x 和 y 数据
# 函数会根据 x 和 y 中的对应元素,在坐标系中绘制点并连接成折线
plt.plot(x, y)
# 添加标题和坐标轴标签
# 使用 plt.title() 函数为图表添加标题
# '定制字体示例' 是标题的具体内容,由于前面设置了字体为黑体,中文能正常显示
plt.title('定制字体示例')
# 使用 plt.xlabel() 函数为 x 轴添加标签
# 'X 轴' 是标签的具体内容,字体为黑体,大小为 14
plt.xlabel('X 轴')
# 使用 plt.ylabel() 函数为 y 轴添加标签
# 'Y 轴' 是标签的具体内容,字体为黑体,大小为 14
plt.ylabel('Y 轴')
# 显示图表
# 使用 plt.show() 函数将绘制好的带有标题和坐标轴标签的折线图显示出来
# 运行此语句后,会弹出一个窗口展示最终的图表
plt.show()
输出结果解释
运行上述代码后,会弹出一个窗口显示折线图,具体特征如下:
● 折线图主体:在坐标系中存在一条连接点 (1, 2)、(2, 4)、(3, 6)、(4, 8) 和 (5, 10) 的折线,这是由 x 和 y 数据确定的。
● 标题和坐标轴标签:
○ 图表上方会显示标题 定制字体示例,字体为黑体,大小为 14。
○ x 轴下方会显示标签 X 轴,字体为黑体,大小为 14。
○ y 轴左侧会显示标签 Y 轴,字体为黑体,大小为 14。
重点语句解释
● plt.rcParams['font.family'] = 'SimHei':全局设置字体家族为黑体,以支持中文显示。
● plt.rcParams['font.size'] = 14:全局设置字体大小为 14。
● plt.title('定制字体示例')、plt.xlabel('X 轴') 和 plt.ylabel('Y 轴'):添加标题和坐标轴标签,使用全局设置的字体样式。
——The END——
🔗 欢迎订阅专栏
序号 | 专栏名称 | 说明 |
---|---|---|
1 | 用Python进行AI数据分析进阶教程 | 《用Python进行AI数据分析进阶教程》专栏 |
2 | AI大模型应用实践进阶教程 | 《AI大模型应用实践进阶教程》专栏 |
3 | Python编程知识集锦 | 《Python编程知识集锦》专栏 |
4 | 字节跳动旗下AI制作抖音视频 | 《字节跳动旗下AI制作抖音视频》专栏 |
5 | 智能辅助驾驶 | 《智能辅助驾驶》专栏 |
6 | 工具软件及IT技术集锦 | 《工具软件及IT技术集锦》专栏 |
👉 关注我 @理工男大辉郎 获取实时更新
欢迎关注、收藏或转发。
敬请关注 我的
微信搜索公众号:cnFuJH
CSDN博客:理工男大辉郎
抖音号:31580422589