图表美化:Matplotlib入门教程
学习目标
通过本课程的学习,学员将掌握如何使用Matplotlib库调整图表的样式,包括颜色、线型、标记和字体等,使学员的图表更加美观和专业。本课程将通过实际操作,帮助学员从基础到进阶,逐步提升图表制作的技能。
相关知识点
- Matplotlib库调整图表样式
学习内容
1 Matplotlib库调整图表样式
1.1 调整图表的颜色
在数据可视化中,颜色的选择对于图表的可读性和吸引力至关重要。Matplotlib提供了多种方式来调整图表的颜色,包括使用预定义的颜色名称、十六进制颜色代码、RGB值等。
1.1.1 预定义的颜色名称
Matplotlib支持一系列预定义的颜色名称,如'red'
、'blue'
、'green'
等。这些颜色名称可以直接在绘图函数中使用,非常方便。
bash
%pip install matplotlib
shell
#下载所需要的字体文件
!wget https://model-community-picture.obs.cn-north-4.myhuaweicloud.com/ascend-zone/notebook_datasets/c7ec517e2fd711f082aafa163edcddae/dingliesongtypeface20241217-2.ttf
python
import matplotlib.pyplot as plt
import matplotlib
from matplotlib import font_manager
# 1. 把当前目录下的 font.ttf 注册到 matplotlib
font_path = './dingliesongtypeface20241217-2.ttf'
font_manager.fontManager.addfont(font_path)
# 2. 设置全局字体家族为该字体的名称
font = font_manager.FontProperties(fname=font_path).get_name()
matplotlib.rcParams['font.family'] = font
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 使用预定义的颜色名称
plt.plot(x, y, color='red')
plt.title('使用预定义的颜色名称')
plt.show()

1.1.2 十六进制颜色代码
如果学员需要更精确的颜色控制,可以使用十六进制颜色代码。十六进制颜色代码由#
开头,后面跟着6个字符,表示红、绿、蓝三种颜色的强度。
python
# 使用十六进制颜色代码
plt.plot(x, y, color='#FF5733')
plt.title('使用十六进制颜色代码')
plt.show()

1.1.3 RGB值
RGB值是另一种精确控制颜色的方法。RGB值是一个包含三个0到1之间浮点数的元组,分别表示红、绿、蓝三种颜色的强度。
python
# 使用RGB值
plt.plot(x, y, color=(0.8, 0.2, 0.5))
plt.title('使用RGB值')
plt.show()

1.2 修改线型和标记
除了颜色,线型和标记也是图表美化的重要元素。Matplotlib提供了多种线型和标记样式,可以通过参数进行调整。
1.2.1 线型
Matplotlib支持多种线型,如实线、虚线、点划线等。线型可以通过linestyle
参数进行设置。
python
# 使用不同的线型
plt.plot(x, y, linestyle='--', color='blue')
plt.title('使用虚线')
plt.show()
plt.plot(x, y, linestyle=':', color='green')
plt.title('使用点线')
plt.show()
1.2.2 标记
标记用于在数据点上添加视觉效果,使图表更加清晰。标记样式可以通过marker
参数进行设置。
python
# 使用不同的标记
plt.plot(x, y, marker='o', color='red')
plt.title('使用圆形标记')
plt.show()
plt.plot(x, y, marker='s', color='purple')
plt.title('使用方形标记')
plt.show()
1.3 自定义字体和文本
在图表中,文本的样式和字体也非常重要。Matplotlib提供了多种方法来自定义文本的样式,包括字体、大小、颜色等。
1.3.1 设置字体
Matplotlib允许学员设置图表中所有文本的默认字体。可以通过rcParams
来设置全局字体。
python
# --- 设置全局自定义字体 ---
import matplotlib.pyplot as plt
import matplotlib
from matplotlib import font_manager
# 1. 把当前目录下的 font.ttf 注册到 matplotlib
font_path = './dingliesongtypeface20241217-2.ttf'
font_manager.fontManager.addfont(font_path)
# 2. 设置全局字体家族为该字体的名称
font = font_manager.FontProperties(fname=font_path).get_name()
matplotlib.rcParams['font.family'] = font
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 绘制图表
plt.plot(x, y, color='blue')
plt.title('使用Dingliesongtypeface字体')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()

1.3.2 设置文本样式
除了全局设置,学员还可以在特定的文本元素上设置样式,如标题、标签等。
python
# 设置特定文本的样式
plt.plot(x, y, color='blue')
plt.title('自定义标题样式', fontsize=16, color='red')
plt.xlabel('X轴', fontsize=14, color='green')
plt.ylabel('Y轴', fontsize=14, color='purple')
plt.show()
