【愚公系列】《Python网络爬虫从入门到精通》041-Matplotlib 图表的常用设置
标题 | 详情 |
---|---|
作者简介 | 愚公搬代码 |
头衔 | 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。 |
近期荣誉 | 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。 |
博客内容 | .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。 |
欢迎 | 👍点赞、✍评论、⭐收藏 |
文章目录
- 🚀前言
- 🚀一、Matplotlib 图表的常用设置
- 🔎1.基本绘图函数 `plot()`
- 🦋1.1 颜色设置
- 🦋1.2 线条样式 `linestyle`
- 🦋1.3 标记样式 `marker`
- 🦋1.4 综合应用示例
- 🦋1.5 其他常用设置
- 🦋1.7 注意事项
- 🔎2.设置画布
- 🦋2.1 `figure()` 函数语法与参数
- 🦋2.2 参数说明
- 🦋2.3 示例代码
- 🦋2.4 注意事项
- 🔎3.设置坐标轴
- 🦋3.1 轴标题设置
- 🦋3.3 坐标轴刻度设置
- 🦋3.3 坐标轴范围设置
- 🦋3.4 网格线设置
- 🦋3.5 注意事项与常见问题
- 🦋3.6 综合示例
- 🔎4.添加文本标签
- 🦋4.1 `text()` 函数语法与参数
- 🦋4.2 示例代码与解析
- 🦋4.3 关键参数说明
- 🦋4.4 注意事项
- 🦋4.5 扩展应用:标注特殊点
- 🔎5.设置标题和图例
- 🦋5.1 图表标题设置
- 🦋5.2 图例设置
- 🦋5.3 综合示例与代码
- 🦋5.4 注意事项
- 🔎6.添加注释
- 🦋6.1 `annotate()` 函数语法与核心参数
- 🦋6.2 坐标系统详解(`xycoords`)
- 🦋6.3 箭头样式设置(`arrowprops`)
- 🦋6.4 完整示例与代码解析
- 🦋6.5 扩展应用与注意事项
🚀前言
在数据可视化的过程中,图表的美观与易读性直接影响到数据传达的效果。Matplotlib作为Python中最流行的绘图库之一,提供了丰富的功能和灵活的设置选项,使得我们能够创建出专业且具有视觉冲击力的图表。然而,初学者常常会在图表设置上感到困惑,不知道如何调整图表的样式、颜色、标签及其他参数,以达到最佳的可视化效果。
在本篇文章《Matplotlib 图表的常用设置》中,我们将系统地介绍Matplotlib中常用的图表设置技巧。我们将涵盖图表的基本构建块,包括标题、坐标轴、图例、刻度以及颜色等方面的设置。通过具体的实例和代码示例,你将学会如何调整图表的各个细节,使其不仅能够有效传达信息,还能吸引观众的注意力。
🚀一、Matplotlib 图表的常用设置
🔎1.基本绘图函数 plot()
语法
matplotlib.pyplot.plot(x, y, format_string, **kwargs)
参数说明
参数 | 说明 |
---|---|
x | x轴数据(列表/数组) |
y | y轴数据(列表/数组) |
format_string | 控制曲线格式的字符串(颜色+线条+标记,如 'ro--' ) |
**kwargs | 键值参数(如 linewidth=2 , markersize=10 ) |
示例
import matplotlib.pyplot as plt
#折线图
#range()函数创建整数列表
x=range(1,15,1)
y=range(1,42,3)
plt.plot(x,y)
plt.show()
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel('体温.xls') #导入Excel文件
#折线图
x =df['日期'] #x轴数据
y=df['体温'] #y轴数据
plt.plot(x,y)
plt.show()
🦋1.1 颜色设置
颜色参数 color
支持多种颜色表示方式:
代码 | 颜色 | 其他方式示例 |
---|---|---|
'b' | 蓝色 | '#0000FF' |
'g' | 绿色 | (0, 1, 0) (RGB元组) |
'r' | 红色 | 'cyan' (颜色名称) |
'c' | 蓝绿色 | 0.5 (灰度值) |
'm' | 洋红色 | 'xkcd:sky blue' (Xkcd颜色) |
'y' | 黄色 | 'tab:blue' (Tableau调色板) |
颜色循环设置
from cycler import cycler
colors = ['#1f77b4', '#ff7f0e', '#2ca02c']
plt.rcParams['axes.prop_cycle'] = cycler(color=colors)
🦋1.2 线条样式 linestyle
代码 | 样式 | 示例 |
---|---|---|
'-' 或 'solid' | 实线(默认) | ![实线] |
'--' 或 'dashed' | 虚线 | ![虚线] |
':' 或 'dotted' | 点线 | ![点线] |
'-.' 或 'dashdot' | 点划线 | ![点划线] |
🦋1.3 标记样式 marker
代码 | 样式 | 说明 |
---|---|---|
'o' | 圆圈 | 实心圆标记 |
's' | 正方形 | 实心正方形 |
'^' | 上三角形 | 倒三角标记 |
'D' | 菱形 | 大菱形标记 |
'*' | 星号 | 五角星标记 |
'h' | 六边形 | 竖六边形标记 |
标记修饰参数
markerfacecolor
(mfc): 标记填充色(如mfc='w'
白色填充)markeredgecolor
(mec): 标记边缘颜色markersize
(ms): 标记大小
🦋1.4 综合应用示例
绘制体温折线图
import pandas as pd
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(5,3),facecolor='yellow')
#导入Excel文件
df=pd.read_excel('体温.xls')
#折线图
x=df['日期'] #x轴数据
y=df['体温'] #y轴数据
plt.plot(x,y,color='m',linestyle='-',marker='o',mfc='w')
plt.show()
🦋1.5 其他常用设置
坐标轴与标题
plt.xlabel("x轴标签")
:设置x轴标签plt.ylabel("y轴标签")
:设置y轴标签plt.title("图表标题")
:设置标题
图例与注释
plt.legend(["图例说明"])
:添加图例plt.text(x, y, "注释文本")
:在指定坐标添加文本plt.annotate("注释", xy=(x,y), xytext=(x1,y1), arrowprops=dict(arrowstyle="->"))
调整边距
plt.subplots_adjust(left=0.1, right=0.9, top=0.9, bottom=0.1)
# 或自动调整
plt.tight_layout()
🦋1.7 注意事项
- 文件路径:确保Excel文件路径正确(如
体温.xls
在代码同级目录)。 - 颜色值纠错:十六进制颜色
#FFFF00
(黄色)而非#FFFFOO
。 - 扩展功能:可结合Seaborn库美化图表,或使用
plt.style
选择预置主题(如plt.style.use('ggplot')
)。
🔎2.设置画布
🦋2.1 figure()
函数语法与参数
figure()
函数用于创建或激活画布,语法如下:
matplotlib.pyplot.figure(num=None, # 画布编号或名称figsize=None, # 画布尺寸dpi=None, # 分辨率facecolor=None, # 背景颜色edgecolor=None, # 边框颜色frameon=True # 是否显示边框
)
🦋2.2 参数说明
参数 | 类型 | 说明 | 默认值 | 示例 |
---|---|---|---|---|
num | int 或 str | 画布标识符(编号或名称)。若 num 已存在,则激活该画布;否则新建画布。 | None | num=1 或 num='my_plot' |
figsize | tuple | 画布尺寸 (宽度, 高度) ,单位为英寸。 | None (默认 (6.4, 4.8) ) | figsize=(8, 5) |
dpi | int | 分辨率(每英寸像素数),值越大图像越清晰。 | None (默认 100 ) | dpi=300 |
facecolor | str 或颜色代码 | 背景颜色(支持名称、十六进制、RGB元组等)。 | None (默认白色) | facecolor='#FFE4C4' |
edgecolor | str 或颜色代码 | 边框颜色。 | None (默认黑色) | edgecolor='blue' |
frameon | bool | 是否显示边框。 | True | frameon=False |
🦋2.3 示例代码
自定义黄色画布(尺寸 5x3 英寸)
import pandas as pd
import matplotlib.pyplot as plt
fig=plt.figure(figsize=(5,3),facecolor='yellow')
#导入Excel文件
df=pd.read_excel('体温.xls')
#折线图
x=df['日期'] #x轴数据
y=df['体温'] #y轴数据
plt.plot(x,y,color='m',linestyle='-',marker='o',mfc='w')
plt.show()
🦋2.4 注意事项
-
文件路径问题:
- 确保 Excel 文件
体温.xls
存在于代码同级目录,或使用绝对路径(如r'C:\data\体温.xls'
)。 - 若文件读取失败,检查
pandas
是否安装:pip install pandas openpyxl
(需openpyxl
支持.xls
)。
- 确保 Excel 文件
-
颜色设置:
facecolor
和edgecolor
支持多种格式:颜色名称('red'
)、十六进制('#FF0000'
)、RGB 元组((1,0,0)
)。
-
画布与子图的关系:
- 使用
plt.figure()
创建独立画布后,默认在当前画布上绘制图形。 - 若需多子图布局,可结合
plt.subplots()
使用。
- 使用
-
分辨率与显示:
- 高
dpi
值(如dpi=300
)适合保存高清图像,但可能增加内存消耗。 - 某些 IDE 或 Jupyter Notebook 中,
plt.show()
可能不会按figsize
精确显示,
- 高