第9节,matplotlib绘制函数曲线

您所在的位置:网站首页 用matplotlib绘制函数曲线 第9节,matplotlib绘制函数曲线

第9节,matplotlib绘制函数曲线

2024-06-26 10:34| 来源: 网络整理| 查看: 265

第8节,绘制函数曲线

使用matplotlib绘制函数曲线,需要完成以下事项:

确定函数 生成x轴数据,并根据x轴数据生成y轴数据 确定x轴和y轴的范围

接下来,我以 y = a*x + b 来示范如何绘制函数曲线

第一步,确定函数

函数y = a*x + b, 太easy了,初衷数学课上学习的,在平面上它是一条执行,b是截距, a 和 b是常数,假设a = 3, b = 4, 函数y = 3x + b,是不是很熟悉

第二步,生成x轴数据,并根据x轴数据生成y轴数据

生成数据使用numpy模块

import matplotlib import numpy as np from matplotlib import pyplot as plt x = np.linspace(-3, 3, 100) # 从-3 到 3 在这个范围内生成100数 y = x*3 + 4

linspace方法生成的数据是均匀分布的,这样才能保证画出连接在一起的曲线。

第三步,确定x轴和y轴的范围

x轴的范围可以根据第二步中的x轴数据来确定,y轴数据则应当根据函数大致估算出合理范围

plt.xlim(-4, 4) plt.ylim(-10, 10) 第四步,设置x,y轴的刻度 plt.xticks(np.linspace(-4, 4, 5)) plt.yticks(np.linspace(-10, 10, 5))

进行到这里,不妨试运行一下程序

import numpy as np from matplotlib import pyplot as plt x = np.linspace(-3, 3, 50) # 从-3 到 3 在这个范围内生成50数 y = x*3 + 4 plt.plot(x, y, color='green', linewidth=1.0, linestyle='--') plt.title('y=3x + 4') plt.xlabel('x') plt.ylabel('y') plt.xlim(-4, 4) plt.ylim(-10, 10) plt.xticks(np.linspace(-4, 4, 5)) plt.yticks(np.linspace(-10, 10, 5)) plt.show()

结果如下图

这和我们所熟悉的平面坐标系很不一样,我们需要去掉上边和右边的两条线,同时将左侧和底部的线进行移动,构成平面直角坐标系。

第5步,构造平面直角坐标系

分为4个步骤:

获取坐标轴信息 将顶部和右侧的线隐藏 移动x轴 移动y轴 ax = plt.gca() ax.spines['right'].set_color('none') # 设置颜色为none ,就看不见了 ax.spines['top'].set_color('none') # 移动x轴 ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data', 0)) # 移动y轴 ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data', 0)) plt.show()

最终呈现效果

画一条执行没什么难度,我决定画一下sin曲线试试

import numpy as np from matplotlib import pyplot as plt x = np.linspace(0, np.pi*2, 50) # 从-3 到 3 在这个范围内生成50数 y = np.sin(x) plt.plot(x, y, color='green', linewidth=1.0, linestyle='--') plt.title('sin') plt.xlabel('x') plt.ylabel('y') plt.xlim(0, np.pi*2) plt.ylim(-1, 1) plt.xticks([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi], ['0', 'π/2', 'π','3π/2','2π']) plt.yticks(np.linspace(-1, 1, 5)) ax = plt.gca() ax.spines['right'].set_color('none') # 设置颜色为none ,就看不见了 ax.spines['top'].set_color('none') # 移动x轴 ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data', 0)) # 移动y轴 ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data', 0)) plt.show()

最终呈现效果



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3