一.matplotlib的基本绘图
我们在使用matplotlib的过程中需要导包后才可以对其进行使用,其导包的代码为:from matplotlib import pyplotas plt其中后面的plt写任何其他内容代替都可以
传入x于y轴并绘制折线图的代码为:plt.plot(x,y)
展示图表的代码为:plt.plot()
对于我们生成的折线图,当我们数据过多时会导致我们的图片难以看清区分,因此我们可以使用语法:plt.figure(figsize=(20,8),dpi=80) 来设置图片的大小。
其中figure时图形图标的意思,在这里指的是我们画的图,figsize=()后的()内代表长与宽,dpi指的是每英寸上点的个数。
保存图片代码:plt.savefig("./sig_size.png")
我们可以使用plt.xticks()来设置x的刻度
同时还可以使用plt.yticks()来设置y的刻度
在我们使用plt.xticks()的时候若括号内出现两个内容例如以下:
其括号左侧的内容为限定范围,右侧为所添加的刻度
对于我们所创建的图标若我们希望看到x或y轴的数据不重叠在一起那么我们可以将坐标轴上的数据内容进行旋转使其不再重叠,因此我们可以使用语法:rotation=数字该语法来对坐标轴上的数据内容进行旋转。
注意:rotation语法所处的位置为上述的xticks或yticks的括号内的尾部位置
二.matplotlib设置显示中文
方案 1:全局字体配置(最常用,一行生效)
通过修改 matplotlib 的全局参数,替换默认字体为系统中文字体,所有图表都会生效。
关键说明:
font.sans-serif 是字体列表,matplotlib 会按顺序查找系统中存在的字体;
无需手动指定字体路径,只需写字体名称(不是文件名);
axes.unicode_minus = False必须加,否则负号(如 -5)会显示成方块。
方案 2:指定字体文件(最稳定,适配特殊环境)
如果全局配置失效(如 PyCharm / 服务器环境),直接指定系统中文字体的文件路径,绕过字体查找逻辑,兼容性拉满。
步骤 1:找到系统中文字体路径
步骤 2:代码实现
方案 3:临时设置字体(单图表生效)
如果只想让单个图表显示中文,不想修改全局配置,可在绘图时临时指定字体:
方案 4:Jupyter Notebook 专属优化
在 Jupyter 中如果中文仍显示异常,需额外添加 %matplotlib inline 配置:
三.matplotlib设置显示中文,复杂内容部分的补充(解包字典内容)
这段代码是Matplotlib 库中用于设置绘图字体的配置代码,主要解决绘图时中文显示乱码的问题,且代码目前被注释(#开头)未执行,同时还标注了 Windows 和 Linux 系统的字体设置思路。
逐行解析
#windws和linux设置字体的放:注释说明这段代码的用途是为 Windows 和 Linux 系统配置 Matplotlib 的字体(“放” 应为笔误,实际是 “方法”)。
font = {'family': 'Microsoft YaHei', 'weight': 'bold', 'size': 'larger'}:定义字体配置字典:
family:指定字体为微软雅黑(Windows 系统常用的中文字体);
weight:设置字体为粗体;
size:设置字体大小为更大(也可设具体数值,如12)。
matplotlib.rc("font",**font):通过解包字典的方式,将上述字体配置应用到 Matplotlib 中。
matplotlib.rc("font",family='Microsoft YaHei',weight="bold"):直接传参的方式,单独指定字体为微软雅黑、样式为粗体,是更简洁的配置写法。
解包字典
在 Matplotlib 字体配置中,解包字典是将预定义的字体配置字典通过 ** 操作符拆解为关键字参数,传递给 matplotlib.rc() 函数的写法,核心是简化多参数传递、提升代码可读性。
一、解包字典的核心原理
Python 中** 是「字典解包操作符」,作用是将字典的 key-value 键值对拆解为 key=value 的形式,直接作为函数参数传递。
二、Matplotlib 字体配置的解包示例
1. 基础写法(解包字典)
2. 对比「不解包」写法
解包的本质是简化以下手动传参的代码,两者效果完全一致:
在此处推荐使用第二种写法
三、跨系统适配的解包进阶用法
结合之前的系统识别逻辑,用解包字典实现更灵活的配置:
四、关键注意事项
1.字典的key必须与plt.rc("font", ...)支持的参数名一致(如family/weight/size/style),否则会报错;
2.**只能用于「关键字参数解包」,且只能传递给支持关键字参数的函数;
3.解包后仍可补充额外参数,例如:
四.列表推导式
列表推导式(List Comprehension)是 Python 中简洁创建列表的语法糖,核心是用一行代码替代「循环 + 条件判断 + 列表追加」的繁琐写法,可读性和执行效率都更高。
其python上表现的主要语法形式为:[表达式 for 变量 in 可迭代对象 if 条件判断]
表达式:最终要存入列表的元素(可对变量做运算、格式化等);
for 变量 in 可迭代对象:遍历字符串、列表、元组、range 等可迭代对象;
if 条件判断:可选,只保留满足条件的元素(过滤作用)。
以下为与普通代码的等价图:
由此可以看出对于列表推导式我们可以简化我们的代码编写使得编译过程更加快捷高效。
以下为列表推导式的常见运用,以便更好的理解列表推导式的作用。
五.字符串格式化的补充(format内容)
新老对比:
format() 是 Python 中字符串格式化的核心方法,作用是把变量 / 值 “填充” 到字符串的指定位置,生成结构化、可读性更强的字符串,替代老式的 % 格式化(比如 "%s%s" % (a,b)),功能更灵活、语法更清晰。
基础用法:占位符 + 填充值:
进阶:指定位置 / 命名占位符
不用严格按顺序,可通过索引或名称精准匹配,避免参数顺序出错:
常用高级功能(实用!)
1. 数值格式化(保留小数、千分位等):
2. 对齐与补位: