美文网首页日常积累
【日常收录】matplotlib的3D绘图

【日常收录】matplotlib的3D绘图

作者: crossous | 来源:发表于2018-09-11 16:29 被阅读94次

    一、前言

      用于复制粘贴的大致外轮廓,来使用matplotlib的3D绘图

    二、代码

    1.引入

    import matplotlib.pyplot as plt
    import matplotlib
    matplotlib.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
    matplotlib.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
    from mpl_toolkits.mplot3d import Axes3D #3D域
    

    2.绘图

    #定义曲面
    def fun(x,y):
        return x*np.cos(2*np.pi*y)+y*np.sin(2*np.pi*x)
    
    fig=plt.figure()#创建一个绘图对象
    ax=Axes3D(fig)#用这个绘图对象创建一个Axes对象(有3D坐标)
    
    X=np.arange(-2,2,0.1)
    Y=np.arange(-2,2,0.1)#创建了从-2到2,步长为0.1的arange对象
    X,Y=np.meshgrid(X,Y)
    #至此X,Y分别表示了取样点的横纵坐标的可能取值
    #用这两个arange对象中的可能取值一一映射去扩充为所有可能的取样点
    
    Z=fun(X,Y)#用取样点横纵坐标去求取样点Z坐标
    
    ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.coolwarm)#用取样点(x,y,z)去构建曲面
    ax.set_xlabel('x label', color='r')
    ax.set_ylabel('y label', color='g')
    ax.set_zlabel('z label', color='b')#给三个坐标轴注明
    
    曲面

      可以像调用plt一样调用ax,例如ax.scatter(x,y,z)绘制3D散点图

    相关文章

      网友评论

        本文标题:【日常收录】matplotlib的3D绘图

        本文链接:https://www.haomeiwen.com/subject/wkvugftx.html