推荐用电脑绘图, 如果是安卓手机, 推荐 应用汇 --> pydroid.
# 本文的命令都要调用的包包,
# 此外再次强调for <条件>要加冒号:回车后循环体要加四个空格
import numpy as np
import matplotlib.pyplot as plt
一. plt.plot() 参数篇
# marker 大全
x=np.array([-1,0,1])
y=np.array([-1,0,2])
mk='.,ov^<>1234sp*hH+xDd|_'
for i in mk:
plt.plot(x,y+mk.index(i)/10,marker=i) # 上移
plt.show()
# linestyle 大全
ls=['-','--','-.',':','']
for i in range(len(ls)):
plt.plot(x,y+i/10,linestyle=ls[i])
plt.show()
# color 默认颜色大全, 还有十六进制颜色可选哦
lc='bgrcmykw'
for i in lc:
plt.plot(x,y+lc.index(i),color=i)
plt.show()
二. 常见基本初等函数绘图篇(numpy 真香)
# np.linespace分片线性差值 欺骗自己的眼睛
for i in range(1,17):
x=np.linspace(0,2*np.pi,i*2)
y=np.sin(x)
plt.subplot(4,4,i) # 多子图利器
plt.plot(x,y,linestyle='-')
plt.show()
#多项式函数
for i in range(0,4):
plt.subplot(2,2,i+1)
x=np.linspace(-2,2,121)
y=x**(i+1)
plt.plot(x,y,linestyle='-')
plt.grid()
plt.show()
# 指数函数 对数函数
x=np.linspace(np.exp(-2),np.exp(2),121)
t=np.linspace(-2,2,121)
plt.plot(x,np.log(x))
plt.plot(t,np.exp(t))
plt.plot(2*t,2*t)
plt.grid() # 网格
plt.legend(['y=ln(x)','y=exp(x)','y=x']) # 对应曲线的标签
plt.show()
# np.linespace 反比例函数
t=np.linspace(-6,6,401)
plt.plot(t,1/t)
plt.plot(t,1/(t+3))
plt.plot(t,-1/t,color='r')
plt.grid()
plt.legend(['y=1/x','y=1/(x+3)','y=-1/x'])
plt.show()
# np.linespace 三角函数 cos vs sin
t=np.linspace(0,4*np.pi,121)
plt.plot(t,np.sin(t))
plt.plot(t,np.cos(t))
plt.grid(alpha=0.5)
plt.legend(['y=sin(t)','y=cos(t)'])
plt.show()
# np.linespace 三角函数 tan
t=np.linspace(-np.pi*3/7,np.pi*3/7,121)
plt.plot(t,np.tan(t),'b',t+np.pi,np.tan(t),'b')
plt.plot([np.pi/2,np.pi/2],[-5,5],':')
plt.text(np.pi/2,0,'(π/2,0)')
plt.grid(alpha=0.5)
plt.legend(['y=tan(t)'])
plt.show()
# 函数的切线 泰勒级数的一阶展开
x=np.linspace(0,2*np.pi,121)
p=np.linspace(0,2*np.pi,13)
for i in range(0,13):
plt.subplot(4,4,i+1)
plt.plot(x,np.sin(x),linestyle='--')
plt.plot(p[i],np.sin(p[i]),'p')
plt.plot(x,np.cos(p[i])*(x-p[i])+np.sin(p[i]))
# 切线方程 f(x0)+f'(x0)(x-x0)
plt.axis([0,2*np.pi,-5,5])
plt.show()
# 泰勒级数的二阶展开
x=np.linspace(0,2*np.pi,121)
p=np.linspace(0,2*np.pi,13)
for i in range(0,13):
plt.subplot(4,4,i+1)
plt.plot(x,np.sin(x),linestyle='--')
plt.plot(p[i],np.sin(p[i]),'p')
plt.plot(x,np.sin(p[i])+np.cos(p[i])*(x-p[i])-np.sin(p[i])/2*(x-p[i])**2)
# 切线方程 f(x0)+f'(x0)(x-x0)+f''(x0)/2*(x-x0)^2
plt.axis([0,2*np.pi,-5,5])
plt.show()
# 参数方程
x=np.linspace(0,2*np.pi,121)
plt.plot(np.cos(x),np.sin(x))
plt.plot(np.cos(x)/2,np.sin(x)/3)
plt.plot(np.cos(x)*(1-np.sin(x))/2,np.sin(x)*(1-np.sin(x))/2)
plt.grid()
plt.axis([-1.3,1.3,-1,1])
plt.legend(['circle','ellipsoid','heart'])
plt.show()
# 参数方程的切线 给自己挖坑...
x=np.linspace(0,2*np.pi,121)
p=np.linspace(0,2*np.pi,17)
k=np.array([-10,10])
for i in range(0,16):
plt.subplot(4,4,i+1)
plt.plot(np.cos(x)/2,np.sin(x)/3)
plt.plot(np.cos(p[i])/2-np.sin(p[i])/2* k ,np.sin(p[i])/3+np.cos(p[i])*k/3)
plt.axis([-1.3,1.3,-1,1])
plt.grid()
plt.show()