Day1_机器学习_数据分析:matplotlib折线图基础语法

1、什么是Matplotlib

Matplotlib:最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建。

(1)Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。
(2)Matplotlib 可以用来绘制各种静态,动态,交互式的图表。
(3)Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。
(4)Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D图形、甚至是图形动画等等。

2、Matplotlib基本语法要点

(1)设置坐标轴刻度

plt.xticks() 函数和 plt.yticks() 函数用来设置坐标轴的刻度显示的值

# 导入pyplot模块

from matplotlib import pyplot as plt

x = range(2, 26, 2)
y = [15, 13, 14, 5, 17, 20, 25, 26, 24, 22, 18, 15]

# 绘图
# 传入x和y的值,通过plot绘制出折线图
plt.plot(x, y)

# 调整x轴的刻度
_xtick_labels = [i/2 for i in range(4, 49)]
plt.xticks(_xtick_labels)
plt.yticks(range(min(y), max(y)+1))

其中当刻度过于密集时,可以使用列表的步长(间隔取值)来解决会自动帮我们对应

plt.xtick(x[::2])

(2)调整坐标轴上的刻度

# 调整x轴的刻度
xtick_labels = ["10点{}分".format(i) for i in range(60)]
xtick_labels += ["11点{}分".format(i) for i in range(60)]

# 取步长, 数字和字符串一一对应,数据的长度一样
plt.xticks(list(x)[::3], xtick_labels[::3], rotation=45, fontproperties=font)

此步的作用:
(1)让列表x中的数据和xtick_labels上的数据都传入,最终会在x轴上一一对应的显示出来;(可以理解为第二项覆盖显示原有的内容)
(2)两组是数据的长度必须一样,否则不能完全覆盖整个轴
(3)使用列表的切片,每隔3个选一个数据进行展示
(4)为了让字符串不会覆盖,使用rotation选项,让字符串旋转45度显示

测试如图所示:
在这里插入图片描述
(3)设置中文显示
Matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字。
笔者使用的是方法是从网络下载一种字体文件复制放入Python文件中,如图所示
在这里插入图片描述
然后再使用时引用即可,这样不用考虑路径的问题,减少出错。

from matplotlib.font_manager import FontProperties  # 导入FontProperties

font = FontProperties(fname="SimHei.ttf", size=8)  # 设置字体
# 取步长, 数字和字符串一一对应,数据的长度一样
plt.xticks(list(x)[::3], xtick_labels[::3], rotation=45, fontproperties=font)

如代码所示:先导入FontProperties,后面在需要显示字体后面使用fontproperties=font引用即可。

当然这只是笔者使用的方法,参考了下面的链接,有需要其他的方法可以参考一下。
CSDN:Matplotlib中正确显示中文的四种方式

(4)给图像添加描述信息
(1)设置x轴的label
(2)设置y轴的label
(3)设置title

# 设置x轴的label
plt.xlabel("时间", fontproperties=font)
# 设置y轴的label
plt.ylabel("温度(C)", fontproperties=font)
# 设置title
plt.title("10点到12点每分钟的时间变化情况", fontproperties=font)

如下图所示:
在这里插入图片描述
(4)给图像绘制网格和添加图例

# 绘制网格
plt.grid(alpha=0.4, ls=":")

# 添加图例
plt.legend(prop=font, loc="upper left")

注:通过prop指定图例的字体,通过loc指定图例的位置,默认右上角
展示结果:

(5)保存图片

# 保存图片
plt.savefig("sig_size.png")

保存结果如图所示;
在这里插入图片描述

总结:在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LeetCode_C++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值