第9节,matplotlib绘制函数曲线 |
您所在的位置:网站首页 › 用matplotlib绘制函数曲线 › 第9节,matplotlib绘制函数曲线 |
第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 + 4linspace方法生成的数据是均匀分布的,这样才能保证画出连接在一起的曲线。 第三步,确定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 |