栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Matplotlib绘制三维脉冲传播

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Matplotlib绘制三维脉冲传播

Change to:

ax.plot_wireframe(T, z, abs(U), cstride=1000)

and call:

drawPropagation(1.0, 1.0, numpy.linspace(-2, 2, 10))

If you need the curve been filled with white color:

import numpyfrom mpl_toolkits.mplot3d import Axes3Dfrom matplotlib import pyplotfrom matplotlib.collections import PolyCollectiondef drawPropagation(beta2, C, z):    """ beta2 in ps / km        C is chirp        z is an array of z positions """    T = numpy.linspace(-10, 10, 100)    sx = T.size    sy = z.size    T = numpy.tile(T, (sy, 1))    z = numpy.tile(z, (sx, 1)).T    U = 1 / numpy.sqrt(1 - 1j*beta2*z * (1 + 1j * C)) * numpy.exp(- 0.5 * (1 + 1j * C) * T * T / (1 - 1j*beta2*z*(1 + 1j*C)))    fig = pyplot.figure()    ax = fig.add_subplot(1,1,1, projection='3d')    U = numpy.abs(U)    verts = []    for i in xrange(T.shape[0]):        verts.append(zip(T[i, :], U[i, :]))    poly = PolyCollection(verts, facecolors=(1,1,1,1), edgecolors=(0,0,1,1))    ax.add_collection3d(poly, zs=z[:, 0], zdir='y')    ax.set_xlim3d(numpy.min(T), numpy.max(T))    ax.set_ylim3d(numpy.min(z), numpy.max(z))    ax.set_zlim3d(numpy.min(U), numpy.max(U))drawPropagation(1.0, 1.0, numpy.linspace(-2, 2, 10))pyplot.show()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639055.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号