Matplotllib——绘制复杂函数图与三维图⼀、绘制⼆维函数图
1.1 绘制函数图
代码1:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-2.5,2,256,endpoint=True)  # 绘制X轴(-2.5,2)的图像
f =(np.sin(x-2))**2*(np.e)**(-x**2)        # y值
plt.plot(x,f,"g-",lw=2.5,label="f(x)")
plt.title('f(x) = sin^2(x-2)e^{-x^2}函数图')
plt.legend()
plt.show()
_______________________________________________
代码2(对于复杂函数,我们可以将其拆分成多单⼀函数)
分析:sin^2(x-2)e^{-x^2}分解:
sin(x1)*sin(x1)*e^x2
其中:x1 = x-2;    x2 = -x^2
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2,300, endpoint=True)
x_1 = x-2
S_1 = np.sin(x_1)
S_2 = S_1**2
E_1 = -x**2
E_2 = np.exp(E_1)
f = S_2*E_2
plt.figure(figsize = ((8,6)))    # 设置画布⼤⼩(可省略)
plt.plot(x,f,'b-',lw=2.5,label='f(x)=sin^2(x-2)e^{-x^2}')
plt.legend()                      # 显⽰图例
plt.show()
1.2 、绘制 sigmoid 函数图
:
1.3、绘制正态分布图其中 s 为 , m为
import  matplotlib.pyplot as  plt
import  numpy as  np
x = np.linspace(-10, 10,300, endpoint=True )
E_1 = -x
E_2 = np.exp(E_1)
f = 1/(1+E_2)
plt.figure(figsize = ((8,6)))    # 设置画布⼤⼩(可省略)
ax1 = plt.subplot(111)
plt.plot(x,f,'b-',lw=2.5,label='f(x)=\\frac{1}{1+e^{-x}}')
plt.legend()                      # 显⽰图例
plt.show()
import math
import matplotlib.pyplot as plt
import numpy as np
def gd(x,m,s):#其中s为sigma ,m为 mu
left=1/(math.sqrt(2*math.pi)*s)
p(-math.pow(x-m,2)/(2*math.pow(s,2)))
return left*right
def showfigure():
plt.figure(figsize = ((8,6)))  #设置画布⼤⼩(可省略)
x=np.arange(-4,5,0.1)          #绘制x(-4,5)
y=[]
for i in x:
y.append(gd(i,0,1))        #m为0,s为1
plt.plot(x,y)
plt.xlim(-4.0,5.0)
plt.ylim(-0.2,0.5)
ax = a()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
#设置并添加标签
label_f1 = "$\mu=0,\ \sigma=1$"
<(2.5,0.3,label_f1,fontsize=15,verticalalignment="top",
horizontalalignment="left")
label_f2 = r"$f(x)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2})$"
<(1.5,0.4,label_f2,fontsize=15,verticalalignment="top"
,horizontalalignment="left")
plt.show()
def main():
showfigure()
gd()
main()
⼆、绘制三维图
2.1 绘制三维螺旋图
2.2
绘制三维线性点图
from mpl_toolkits.mplot3d import Axes3D
import numpy as  np
import matplotlib.pyplot as  plt
fig = plt.figure(figsize = ((8,6)))
ax = fig.add_subplot(1,1,1,projection='3d')
theta = np.linspace(-4 * np.pi , 4 * np.pi , 500) # theta 旋转⾓从-4pi 到4pi ,相当于两圈z = np.linspace(0, 2, 500)  # z 轴从下到上,从-2到2之间画100个点
r = z                      # 半径设置为z ⼤⼩
x = r * np.sin(theta)      # x 和y 画圆
y = r * np.cos(theta)      # x 和y 画圆
ax.plot(x, y, z, label='curve')
ax.legend()                # 图例plt.show()
from  mpl_toolkits.mplot3d import  Axes3D
import  numpy as  np
matplotlib中subplot
import  matplotlib.pyplot as  plt
fig = plt.figure()
ax = fig.add_subplot(1,1,1,projection='3d')
x = np.linspace(0, 5, 10)      # 在0-5之间⽣成10个点的向量
y = np.linspace(0, 5, 10)      # 在0-5之间⽣成10个点的向量
z1 = x
z2 = 2*x
z3 = 3*x
ax.scatter(xx, yy, zz1, c='red', marker='o')  # o 型符号
ax.scatter(xx, yy, zz2, c='green', marker='^') # 三⾓型符号
ax.scatter(xx, yy, zz3, c='black', marker='*') # 星型符号
ax.legend()                                    # 显⽰图例
plt.show()
2.3
绘制三维柱状图
2.4 绘制三维 鞍部 曲⾯图import  random
import  matplotlib as  mpl
import  matplotlib.dates as  mdates
from  mpl_toolkits.mplot3d import  Axes3D
fig = plt.figure(figsize=((8,6)))
ax = fig.add_subplot(111, projection='3d')
for  z in  [2011, 2012, 2013, 2014]:
xs = range(1,13)
ys = 1000 * np.random.rand(12)
color = Set2(random.choice(Set2.N)))    ax.bar(xs, ys, zs=z, zdir='y', color=color, alpha=0.8)
ax.xaxis.set_major_locator(mpl.ticker.FixedLocator(xs))ax.yaxis.set_major_locator(mpl.ticker.FixedLocator(ys))ax.set_xlabel('⽉份')
ax.set_ylabel('年份')
ax.set_zlabel('销售额 ')
plt.show()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。