第一章.认识Matplotlib

初识Matplotlib

  • Matplotlib是作为Python的一个 2D绘图库,利用简单的代码就可以绘制出需要高质量的图像,对于学习使用Python做数据分析、可视化等有很大的帮助。

一个最简单的例子

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
  • fig: Figure
  • ax: axes.Axes or array of Axes
  • ax 可以是单个 Axes 对象,也可以是 Axes 对象数组(如果创建了多个子图)。可以使用 squeeze 关键字控制结果数组的维度。处理返回值的典型语法是:
# using the variable ax for single a Axes
fig, ax = plt.subplots()
# using the variable axs for multiple Axes
fig, axs = plt.subplots(2, 2)
# using the variable ax for single a Axes
fig, ax = plt.subplots()
    
# using the variable axs for multiple Axes
fig, axs = plt.subplots(2, 2)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uAK4EY1z-1652751524980)(output_4_0.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4X9JdNEq-1652751524981)(output_4_1.png)]


fig, ax = plt.subplots() # 创建一个包含axes的figure
ax.plot([1, 2, 3, 4],[1, 4, 2, 3]) # 绘制图像
[<matplotlib.lines.Line2D at 0x22b9b487f10>]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q98m2YMT-1652751524981)(output_5_1.png)]

和MATLAB命令类似,你还可以通过一种更简单的方式绘制图像,matplotlib.pyplot方法能够直接在当前axes上绘制图像,如果用户未指定axes,matplotlib会帮你自动创建一个。所以上面的例子也可以简化为以下这一行代码。
plt.plot([1, 2, 3, 4], [1, 4, 2, 3])
[<matplotlib.lines.Line2D at 0x22b9b433280>]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yN4ddMRE-1652751524981)(output_7_1.png)]

两种绘图接口
  • matplotlib有两种最常用的绘图接口

    –显式创建figure和axes,在上面调用绘图方法,也被称为OO模式(object-oriented style)

    –依赖pyplot自动创建figure和axes,并绘图

x = np.linspace(0, 2, 200)

fig, ax = plt.subplots()
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()

<matplotlib.legend.Legend at 0x22b9b13e940>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2G5vHAv1-1652751524982)(output_9_1.png)]

"""
pyplot绘图
"""
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2, 100)
y1 = x
y2 = x**2
y3 = x**3
plt.plot(x, y1, label='y=x')
plt.plot(x, y2, label='y=x^2')
plt.plot(x, y3, label='y=x^3')
plt.title('Sample Plot')
plt.legend()
plt.show()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K26FE28a-1652751524982)(output_10_0.png)]

通用绘图模板

matplotlib的知识点很多,很多时候都是边用边查,因此这里提供一个通用的绘图模板。

# step1准备数据
x = np.linspace(0, 2, 100)
y = x**2
#step2 设置绘图样式,这一模块的扩展参考第五章进一步学习,这一步不是必须得,样式也可以在绘制图像时进行设置
mpl.rc('lines', linewidth=4, linestyle='-.')

# step3 定义布局,这一模块的扩展参考第三章进一步学习
fig, ax = plt.subplots()

# 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()

<matplotlib.legend.Legend at 0x22b9afc5400>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3hG2h1by-1652751524982)(output_12_1.png)]

思考题

    1. 请思考两种绘图模式的优缺点和各自合适的使用场景
    1. 在上面绘图模板中我们是以OO模式作为例子展示的, 请思考并写一个pyplot绘图模式的简单模板
    1. OO样式可以将轴与Figure一起创建很方便,但也可以在以后手动添加轴。对于复杂的绘图,以及打算作为较大项目的一部分重用的函数和脚本推荐使用OO样式。但是,pyplot 样式对于快速交互式工作非常方便。
    1. 如下
'''
matplotlib.pyplot是命令样式函数的集合,使matplotlib像MATLAB一样工作。
每个pyplot函数对图形进行一些更改。例如,创建图形,在图形中创建绘图区域,绘制绘图区域中的某些线条,
使用标签装饰图形等//原文出自【易百教程】,原文链接:https://www.yiibai.com/matplotlib/pyplot-tutorial.html
'''
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 6, 0.1)
y = np.arctan(x)
plt.plot(x,y)

[<matplotlib.lines.Line2D at 0x181e3b1e5e0>]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xr5i3lXo-1652751524983)(output_15_1.png)]

参考
  • https://matplotlib.org/stable/api/matplotlib_configuration_api.html
  • https://zhuanlan.zhihu.com/p/70835617
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值