matplotlib学习笔记

matplotlib第一章

matplotlib通常有两种绘图接口:
①显示创建figure和axes
②依赖pyplot自动创建figure和axes,并绘图

matplotlib环境

本文是在jupyter notebook下运行的,使用的matplotlb版本是3.5.1
首先在代码中加入matplotlib的包

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

另外,如果想知道自己的包版本的话,可以加上

mpl.__version__

第一种绘图接口

x = np.linspace(0, 2, 100);
ax = plt.subplot(); 显示创建figure和axes
ax.plot(x, x, label = 'linear');   #设置三种不同标签的曲线
ax.plot(x, x**2, label = 'quadratic');
ax.plot(x, x**3, label = 'cubic');
ax.set_xlabel('x label');     #设置横坐标名称
ax.set_ylabel('y label');     #设置纵坐标名称
ax.set_title("Simple Plot");  #设置标题
ax.legend();  #左上角曲线名称对应颜色

结果如下图所示
在这里插入图片描述
在学习过程中遇到一个问题,在上面代码块中第一句,实际的教程应该是

fig, ax = plt.subplot();

但是这种情况,我运行是会报错的,在尝试去掉fig这一参数,能成功运行。原因尚未清楚,希望有大佬解答一下

第二种绘图接口

x = np.linspace(0, 2, 100);
plt.plot(x, x, label = 'linear');   #设置三种不同标签的曲线
plt.plot(x, x**2, label = 'quadratic');
plt.plot(x, x**3, label = 'cubic');
plt.xlabel('x label');     #设置横坐标名称
plt.ylabel('y label');     #设置纵坐标名称
plt.title("Simple Plot");  #设置标题
plt.legend();  #左上角曲线名称对应颜色

结果与第一种绘图接口一致(横纵坐标都一致)

通用画图模板

以下给出的是通用的绘图模板,其中一些模块将在后续扩展学习

# step1 准备数据
x = np.linspace(0, 2, 100);
y = x**2;

# step2 设置绘图样式,这一模块的扩展参考第五章
mpl.rc('lines', linewidth = 4, linestyle = '-.');

# step3 定义布局 第三章进一步学习
fig, ax = plt.subplots();    #为什么加s呢

# step4 绘制图像 第二章进一步学习
ax.plot(x, y, label = 'linear');

# step5 添加标签,文字和图列 第四章进一步学习
ax.set_xlabel('x label');
ax.set_ylabel('y label');
ax.set_title("Simple Plot");
ax.legend();

在这里插入图片描述

思考题

  • 请思考两种绘图模式的优缺点和各自适合的使用场景
    第一种绘图模式我认为更适合于学术论文写作需要作图的情况下使用
    第二种绘图模式适合调试代码,能快速查看结果的情况下使用
  • 在第五节绘图模板中我们是以OO模式作为例子展示的,请思考并写一个pyplot绘图模式的简单模板
# step1 准备数据
x = np.linspace(0, 2, 100);
y = x**2;

# step2 设置绘图样式,这一模块的扩展参考第五章
mpl.rc('lines', linewidth = 4, linestyle = '-.');

# step3 定义布局 第三章进一步学习
#fig, ax = plt.subplots();    #为什么加s呢

# step4 绘制图像 第二章进一步学习
plt.plot(x, y, label = 'linear');

# step5 添加标签,文字和图列 第四章进一步学习
plt.xlabel('x label');
plt.ylabel('y label');
plt.title("Simple Plot");
plt.legend();

总结

两种绘图模式的主要区别在于
第二种绘图接口与第一种不同的是:
①不需要subplot
②xlabel、ylabel、title去掉set前缀

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值