编写程序,分别采用面向对象和面向函数两种方式绘制正弦曲线和余弦曲线
# 面向对象的方式
import numpy as np
import matplotlib.pyplot as plt
x_data = np.linspace(-np.pi, np.pi, 256, endpoint=True)
#设置x轴[-pi,pi]区域256个点,endpoint=True表示是否包含最后一个点
y_sin, y_cos = np.sin(x_data), np.cos(x_data)
#分别定义正弦、余弦函数
fig = plt.figure()
#构建画布对象fig
ax = fig.add_subplot(111)
#在画布对象fig中构建子图(绘图区域)ax 、111 (1行1列1个绘图区域)
ax.plot(x_data, y_sin)
#采用折线图plot()函数,绘制图表:正弦函数 (x_data自变量, y_sin应变量)
ax.plot(x_data, y_cos)
#采用折线图plot()方法,绘制图表:余弦函数 (x_data自变量, y_cos应变量)
plt.show()
#展示图表
# 面向函数的方式
import numpy as np
import matplotlib.pyplot as plt
x_data = np.linspace(-np.pi, np.pi, 256, endpoint=True)
#设置x轴[-pi,pi]区域256个点,endpoint=True表示是否包含最后一个点
y_sin, y_cos = np.sin(x_data), np.cos(x_data)
plt.plot(x_data, y_sin)
# 调用plot()函数,绘制图表:余弦函数 (x_data自变量, y_cos应变量)
plt.plot(x_data, y_cos)
plt.show()
- 效果图
一些知识点:
-
Matplotlib
是Python的一个绘图库,主要用于绘制2D图标的Python库(也可绘制一些3D图表),支持numpy、pandas的数据结构;它是一个面向对象的绘图库,它所绘制的图表元素均对应一个对象;提供与Matlab命令类似的API,方便熟悉Matlab的用户进行开发。
-
matplotlib官网提供了3种API:
- pyplot API:是使用pyplot模块开发的接口,需要使用"import matplotlib.pyplot as plt"语句导入pyplot模块。
- object-oriented API:是面向对象的接口,包含一系列对应图表元素的类,使用时需要先创建画布(Figure类对象),再在该画布添加拥有坐标系统的绘图区域(Axes对象),最后在绘图区域中调用绘图方法绘制图标。
- pylab API:基本弃用
-
plot()函数与plot()方法的参数用法是相同的,它们唯一的区别在于plot()函数缺少self参数,可以直接被pyplot模块调用;而plot()方法只能被Axes类的对象调用。
-
numpy之linspace()函数使用详解
numpy之linspace()函数使用详解 | w3c笔记 (w3cschool.cn)
-
fig.add_subplot(111) 前两个表示几行*几列的网格,最后一个表示第几子图