使用matplotlib绘制函数曲线,需要完成以下事项:
接下来,我以 y = a*x + b 来示范如何绘制函数曲线
函数y = a*x + b, 太easy了,初衷数学课上学习的,在平面上它是一条执行,b是截距, a 和 b是常数,假设a = 3, b = 4, 函数y = 3x + b,是不是很熟悉
生成数据使用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轴的范围可以根据第二步中的x轴数据来确定,y轴数据则应当根据函数大致估算出合理范围
plt.xlim(-4, 4)
plt.ylim(-10, 10)
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()
结果如下图
这和我们所熟悉的平面坐标系很不一样,我们需要去掉上边和右边的两条线,同时将左侧和底部的线进行移动,构成平面直角坐标系。
分为4个步骤:
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()
最终呈现效果
QQ交流群: 211426309