个人网站:山海同行
网站地址:https://shanhaigo.cn/
本篇地址:https://shanhaigo.cn/courseContent/1871464429850394624
上篇Matplotlib绘制了一张天气图,大家都很惊讶和好奇,当然也有好多疑问。最多的就是点的样式能不能改下,线条能换成虚线的样式吗?根据大家的反馈,Matplotlib小伙伴整理了大家的疑问,并分类说明…
希望通过本篇学习和实操之后,大家都可以画出内心的那张图!
一、Matplotlib小伙伴的点标记
绘图过程中大家都想要自己心目中的那张图,接下来是实现的第一步:点的标记
实现过程由Matplotlib小伙伴的工具plot() 方法的 marker 参数来定义
1. 点的符号标记
画一个实心圆的点,符号为:o
# 实心圆
plt.plot(x_data, y_data, marker='o')
下三角的点,符号为:v
# 下三角
plt.plot(x_data, y_data, marker='v')
举了俩个例子,相信大家都明白,替换marker中的符号,进行实现不同点的样式,完整的符号如下:
标记 | 符号 | 描述 |
---|---|---|
“.” | ![]() | 点 |
“,” | ![]() | 像素点 |
“o” | ![]() | 实心圆 |
“v” | ![]() | 下三角 |
“^” | ![]() | 上三角 |
“<” | ![]() | 左三角 |
“>” | ![]() | 右三角 |
“1” | ![]() | 下三叉 |
“2” | ![]() | 上三叉 |
“3” | ![]() | 左三叉 |
“4” | ![]() | 右三叉 |
“8” | ![]() | 八角形 |
“s” | ![]() | 正方形 |
“p” | ![]() | 五边形 |
“P” | ![]() | 加号(填充) |
“*” | ![]() | 星号 |
“h” | ![]() | 六边形 1 |
“H” | ![]() | 六边形 2 |
“+” | ![]() | 加号 |
“x” | ![]() | 乘号 x |
“X” | ![]() | 乘号 x (填充) |
“D” | ![]() | 菱形 |
“d” | ![]() | 瘦菱形 |
“|” | ![]() | 竖线 |
“_” | ![]() | 横线 |
0 (TICKLEFT) | ![]() | 左横线 |
1 (TICKRIGHT) | ![]() | 右横线 |
2 (TICKUP) | ![]() | 上竖线 |
3 (TICKDOWN) | ![]() | 下竖线 |
4 (CARETLEFT) | ![]() | 左箭头 |
5 (CARETRIGHT) | ![]() | 右箭头 |
6 (CARETUP) | ![]() | 上箭头 |
7 (CARETDOWN) | ![]() | 下箭头 |
8 (CARETLEFTBASE) | ![]() | 左箭头 (中间点为基准) |
9 (CARETRIGHTBASE) | ![]() | 右箭头 (中间点为基准) |
10 (CARETUPBASE) | ![]() | 上箭头 (中间点为基准) |
11 (CARETDOWNBASE) | ![]() | 下箭头 (中间点为基准) |
“None”, " " or “” | 没有任何标记 | |
‘.........’ | ![]() | 渲染指定的字符。例如 “fff” 以字母 f 为标记。 |
2. 点的代码标记
上述表可以通过符号实现,也给了一部分用代码实现的方式,比如画个左箭头的点
from matplotlib import markers
# 下三角
plt.plot(x_data, y_data, marker=markers.CARETDOWNBASE)
3. 点的大小和颜色
可以自定义标记的大小与颜色,使用的参数分别是:
markersize,简写为 ms:定义标记的大小。
markerfacecolor,简写为 mfc:定义标记内部的颜色。
markeredgecolor,简写为 mec:定义标记边框的颜色。
# 点的大小和颜色
# 实心圆 大小20,边框颜色红色,填充颜色黄色
plt.plot(x_data, y_data, marker='o', ms=20, mec='r', mfc='y')
二、Matplotlib小伙伴的线样式
1. 线的形状
Matplotlib小伙伴实现线有如下几种方式,通过linestyle参数实现
线类型标记 | 描述 |
---|---|
‘-’ | 实线 |
‘:’ | 虚线 |
‘–’ | 破折线 |
‘-.’ | 点划线 |
比如实现虚线,代码如下:
# 虚线
plt.plot(x_data, y_data, linestyle=':')
等等,其它方式,可以参考如上代码
2. 线的颜色
线的方式可以更改,那么线的颜色修改方式如下:
颜色标记 | 描述 |
---|---|
‘r’ | 红色 |
‘g’ | 绿色 |
‘b’ | 蓝色 |
‘c’ | 青色 |
‘m’ | 品红 |
‘y’ | 黄色 |
‘k’ | 黑色 |
‘w’ | 白色 |
举例,比如要实现红色的线条颜色
# 红色线条
plt.plot(x_data, y_data, color='r')
三、点和线汇总实现
除了上述的点的marker、线的linestyle、颜色的color方式单个实现,还有一种是组合实现,通过fmt参数实现,具体内容如下:
fmt 参数定义了基本格式,如标记、线条样式和颜色。
fmt = '[marker][line][color]'
举例1
# 实心圆、破折线、绿色
plt.plot(x_data, y_data, 'o--g')
举例2
# 下三角、点划线、青色
plt.plot(x_data, y_data, 'v-.c')
完整代码
import matplotlib.pyplot as plt
from matplotlib import markers
plt.switch_backend('TkAgg')
# 北京2024年平均天气
# 十二个月
x_data = [i for i in range(1, 13)]
# 每个月平均温度
y_data = [-4, -4, 5, 10, 18, 23, 25, 25, 20, 10, 2, -4]
# 画布
plt.figure(figsize=(15, 7), dpi=100)
# 绘制折线图
# 实心圆
# plt.plot(x_data, y_data, marker='o')
# 下三角
# plt.plot(x_data, y_data, marker='v')
# 下三角
# plt.plot(x_data, y_data, marker=markers.CARETDOWNBASE)
# 点的大小和颜色
# 实心圆 大小20,边框颜色红色,填充颜色黄色
# plt.plot(x_data, y_data, marker='o', ms=20, mec='r', mfc='y')
# 虚线
# plt.plot(x_data, y_data, linestyle=':')
# 红色线条
# plt.plot(x_data, y_data, color='r')
# 实心圆、破折线、绿色
# plt.plot(x_data, y_data, 'o--g')
# 下三角、点划线、青色
plt.plot(x_data, y_data, 'v-.c')
# 生成图片
plt.show()