• 【python-plt】三维图形实例


    手稿图
    import numpy as np
    import matplotlib.pyplot as plt
    
    eqs = []
    eqs.append((r"$W^{3eta}_{delta_1 
    ho_1 sigma_2} = U^{3eta}_{delta_1 
    ho_1} + frac{1}{8 pi 2} int^{alpha_2}_{alpha_2} d alpha^prime_2 left[frac{ U^{2eta}_{delta_1 
    ho_1} - alpha^prime_2U^{1eta}_{
    ho_1 sigma_2} }{U^{0eta}_{
    ho_1 sigma_2}}
    ight]$"))
    eqs.append((r"$frac{d
    ho}{d t} + 
    ho vec{v}cdot
    ablavec{v} = -
    abla p + mu
    abla^2 vec{v} + 
    ho vec{g}$"))
    eqs.append((r"$int_{-infty}^infty e^{-x^2}dx=sqrt{pi}$"))
    eqs.append((r"$E = mc^2 = sqrt{{m_0}^2c^4 + p^2c^2}$"))
    eqs.append((r"$F_G = Gfrac{m_1m_2}{r^2}$"))
    
    
    plt.axes([0.025,0.025,0.95,0.95])
    
    for i in range(24):
        index = np.random.randint(0,len(eqs))
        eq = eqs[index]
        size = np.random.uniform(12,32)
        x,y = np.random.uniform(0,1,2)
        alpha = np.random.uniform(0.25,.75)
        plt.text(x, y, eq, ha='center', va='center', color="#11557c", alpha=alpha,
                 transform=plt.gca().transAxes, fontsize=size, clip_on=True)
    
    plt.xticks([]), plt.yticks([])
    # savefig('../figures/text_ex.png',dpi=48)
    plt.show()
    
    1583494494470
    折线图

    Axes3D.plot(xs, ys, *args, **kwargs)

    Argument Description
    xs, ys x, y coordinates of vertices
    zs z value(s), either one for all points or one for each point.
    zdir Which direction to use as z (‘x’, ‘y’ or ‘z’) when plotting a 2D set.
    `import` `matplotlib as mpl``from` `mpl_toolkits.mplot3d ``import` `Axes3D``import` `numpy as np``import` `matplotlib.pyplot as plt` `mpl.rcParams[``'legend.fontsize'``] ``=` `10` `fig ``=` `plt.figure()``ax ``=` `fig.gca(projection``=``'3d'``)``theta ``=` `np.linspace(``-``4` `*` `np.pi, ``4` `*` `np.pi, ``100``)``z ``=` `np.linspace(``-``2``, ``2``, ``100``)``r ``=` `z ``*``*` `2` `+` `1``x ``=` `r ``*` `np.sin(theta)``y ``=` `r ``*` `np.cos(theta)``ax.plot(x, y, z, label``=``'parametric curve'``)``ax.legend()` `plt.show()`
    

    img

    散点图

    Axes3D.scatter(xs, ys, zs=0, zdir='z', s=20, c=None, depthshade=True, **args*, **kwargs)

    Argument Description
    xs, ys Positions of data points.
    zs Either an array of the same length as xs and ys or a single value to place all points in the same plane. Default is 0.
    zdir Which direction to use as z (‘x’, ‘y’ or ‘z’) when plotting a 2D set.
    s Size in points^2. It is a scalar or an array of the same length as x and y.
    c A color. c can be a single color format string, or a sequence of color specifications of length N, or a sequence of Nnumbers to be mapped to colors using the cmap and norm specified via kwargs (see below). Note that c should not be a single numeric RGB or RGBA sequence because that is indistinguishable from an array of values to be colormapped. ccan be a 2-D array in which the rows are RGB or RGBA, however, including the case of a single row to specify the same color for all points.
    depthshade Whether or not to shade the scatter markers to give the appearance of depth. Default is True.
    `from` `mpl_toolkits.mplot3d ``import` `Axes3D``import` `matplotlib.pyplot as plt``import` `numpy as np` `def` `randrange(n, vmin, vmax):``  ``'''``  ``Helper function to make an array of random numbers having shape (n, )``  ``with each number distributed Uniform(vmin, vmax).``  ``'''``  ``return` `(vmax ``-` `vmin) ``*` `np.random.rand(n) ``+` `vmin` `fig ``=` `plt.figure()``ax ``=` `fig.add_subplot(``111``, projection``=``'3d'``)` `n ``=` `100` `# For each set of style and range settings, plot n random points in the box``# defined by x in [23, 32], y in [0, 100], z in [zlow, zhigh].``for` `c, m, zlow, zhigh ``in` `[(``'r'``, ``'o'``, ``-``50``, ``-``25``), (``'b'``, ``'^'``, ``-``30``, ``-``5``)]:``  ``xs ``=` `randrange(n, ``23``, ``32``)``  ``ys ``=` `randrange(n, ``0``, ``100``)``  ``zs ``=` `randrange(n, zlow, zhigh)``  ``ax.scatter(xs, ys, zs, c``=``c, marker``=``m)` `ax.set_xlabel(``'X Label'``)``ax.set_ylabel(``'Y Label'``)``ax.set_zlabel(``'Z Label'``)` `plt.show()`
    

    img

    线框图

    Axes3D.plot_wireframe(X, Y, Z, **args*, **kwargs)

    Argument Description
    X, Y, Data values as 2D arrays
    Z
    rstride Array row stride (step size), defaults to 1
    cstride Array column stride (step size), defaults to 1
    rcount Use at most this many rows, defaults to 50
    ccount Use at most this many columns, defaults to 50
    `from` `mpl_toolkits.mplot3d ``import` `axes3d``import` `matplotlib.pyplot as plt` `fig ``=` `plt.figure()``ax ``=` `fig.add_subplot(``111``, projection``=``'3d'``)` `# Grab some test data.``X, Y, Z ``=` `axes3d.get_test_data(``0.05``)` `# Plot a basic wireframe.``ax.plot_wireframe(X, Y, Z, rstride``=``10``, cstride``=``10``)` `plt.show()`
    
    img

    表面图

    Axes3D.``plot_surface(X, Y, Z, **args*, **kwargs)

    Argument Description
    X, Y, Z Data values as 2D arrays
    rstride Array row stride (step size)
    cstride Array column stride (step size)
    rcount Use at most this many rows, defaults to 50
    ccount Use at most this many columns, defaults to 50
    color Color of the surface patches
    cmap A colormap for the surface patches.
    facecolors Face colors for the individual patches
    norm An instance of Normalize to map values to colors
    vmin Minimum value to map
    vmax Maximum value to map
    shade Whether to shade the facecolors
    `from` `mpl_toolkits.mplot3d ``import` `Axes3D``import` `matplotlib.pyplot as plt``from` `matplotlib ``import` `cm``from` `matplotlib.ticker ``import` `LinearLocator, FormatStrFormatter``import` `numpy as np` `fig ``=` `plt.figure()``ax ``=` `fig.gca(projection``=``'3d'``)` `# Make data.``X ``=` `np.arange(``-``5``, ``5``, ``0.25``)``Y ``=` `np.arange(``-``5``, ``5``, ``0.25``)``X, Y ``=` `np.meshgrid(X, Y)``R ``=` `np.sqrt(X ``*``*` `2` `+` `Y ``*``*` `2``)``Z ``=` `np.sin(R)` `# Plot the surface.``surf ``=` `ax.plot_surface(X, Y, Z, cmap``=``cm.coolwarm,``            ``linewidth``=``0``, antialiased``=``False``)` `# Customize the z axis.``ax.set_zlim(``-``1.01``, ``1.01``)``ax.zaxis.set_major_locator(LinearLocator(``10``))``ax.zaxis.set_major_formatter(FormatStrFormatter(``'%.02f'``))` `# Add a color bar which maps values to colors.``fig.colorbar(surf, shrink``=``0.5``, aspect``=``5``)` `plt.show()`
    

    img

    柱状图

    Axes3D.``bar(left, height, zs=0, zdir='z', **args*, **kwargs)

    Argument Description
    left The x coordinates of the left sides of the bars.
    height The height of the bars.
    zs Z coordinate of bars, if one value is specified they will all be placed at the same z.
    zdir Which direction to use as z (‘x’, ‘y’ or ‘z’) when plotting a 2D set.
    `from` `mpl_toolkits.mplot3d ``import` `Axes3D``import` `matplotlib.pyplot as plt``import` `numpy as np` `fig ``=` `plt.figure()``ax ``=` `fig.add_subplot(``111``, projection``=``'3d'``)``for` `c, z ``in` `zip``([``'r'``, ``'g'``, ``'b'``, ``'y'``], [``30``, ``20``, ``10``, ``0``]):``  ``xs ``=` `np.arange(``20``)``  ``ys ``=` `np.random.rand(``20``)` `  ``# You can provide either a single color or an array. To demonstrate this,``  ``# the first bar of each set will be colored cyan.``  ``cs ``=` `[c] ``*` `len``(xs)``  ``cs[``0``] ``=` `'c'``  ``ax.bar(xs, ys, zs``=``z, zdir``=``'y'``, color``=``cs, alpha``=``0.8``)` `ax.set_xlabel(``'X'``)``ax.set_ylabel(``'Y'``)``ax.set_zlabel(``'Z'``)` `plt.show()`
    

    img

    箭头图

    Axes3D.``quiver(**args*, **kwargs)

    Arguments:

    • X, Y, Z:

      The x, y and z coordinates of the arrow locations (default is tail of arrow; see pivot kwarg)

    • U, V, W:

      The x, y and z components of the arrow vectors

    `from` `mpl_toolkits.mplot3d ``import` `axes3d``import` `matplotlib.pyplot as plt``import` `numpy as np` `fig ``=` `plt.figure()``ax ``=` `fig.gca(projection``=``'3d'``)` `# Make the grid``x, y, z ``=` `np.meshgrid(np.arange(``-``0.8``, ``1``, ``0.2``),``           ``np.arange(``-``0.8``, ``1``, ``0.2``),``           ``np.arange(``-``0.8``, ``1``, ``0.8``))` `# Make the direction data for the arrows``u ``=` `np.sin(np.pi ``*` `x) ``*` `np.cos(np.pi ``*` `y) ``*` `np.cos(np.pi ``*` `z)``v ``=` `-``np.cos(np.pi ``*` `x) ``*` `np.sin(np.pi ``*` `y) ``*` `np.cos(np.pi ``*` `z)``w ``=` `(np.sqrt(``2.0` `/` `3.0``) ``*` `np.cos(np.pi ``*` `x) ``*` `np.cos(np.pi ``*` `y) ``*``   ``np.sin(np.pi ``*` `z))` `ax.quiver(x, y, z, u, v, w, length``=``0.1``, normalize``=``True``)` `plt.show()`
    

    img

    2D转3D图

    `from` `mpl_toolkits.mplot3d ``import` `Axes3D``import` `numpy as np``import` `matplotlib.pyplot as plt` `fig ``=` `plt.figure()``ax ``=` `fig.gca(projection``=``'3d'``)` `# Plot a sin curve using the x and y axes.``x ``=` `np.linspace(``0``, ``1``, ``100``)``y ``=` `np.sin(x ``*` `2` `*` `np.pi) ``/` `2` `+` `0.5``ax.plot(x, y, zs``=``0``, zdir``=``'z'``, label``=``'curve in (x,y)'``)` `# Plot scatterplot data (20 2D points per colour) on the x and z axes.``colors ``=` `(``'r'``, ``'g'``, ``'b'``, ``'k'``)``x ``=` `np.random.sample(``20` `*` `len``(colors))``y ``=` `np.random.sample(``20` `*` `len``(colors))``labels ``=` `np.random.randint(``3``, size``=``80``)` `# By using zdir='y', the y value of these points is fixed to the zs value 0``# and the (x,y) points are plotted on the x and z axes.``ax.scatter(x, y, zs``=``0``, zdir``=``'y'``, c``=``labels, label``=``'points in (x,z)'``)` `# Make legend, set axes limits and labels``ax.legend()``ax.set_xlim(``0``, ``1``)``ax.set_ylim(``0``, ``1``)``ax.set_zlim(``0``, ``1``)``ax.set_xlabel(``'X'``)``ax.set_ylabel(``'Y'``)``ax.set_zlabel(``'Z'``)` `# Customize the view angle so it's easier to see that the scatter points lie``# on the plane y=0``ax.view_init(elev``=``20.``, azim``=``-``35``)` `plt.show()`
    

    img

    文本图

    `from` `mpl_toolkits.mplot3d ``import` `Axes3D``import` `matplotlib.pyplot as plt` `fig ``=` `plt.figure()``ax ``=` `fig.gca(projection``=``'3d'``)` `# Demo 1: zdir``zdirs ``=` `(``None``, ``'x'``, ``'y'``, ``'z'``, (``1``, ``1``, ``0``), (``1``, ``1``, ``1``))``xs ``=` `(``1``, ``4``, ``4``, ``9``, ``4``, ``1``)``ys ``=` `(``2``, ``5``, ``8``, ``10``, ``1``, ``2``)``zs ``=` `(``10``, ``3``, ``8``, ``9``, ``1``, ``8``)` `for` `zdir, x, y, z ``in` `zip``(zdirs, xs, ys, zs):``  ``label ``=` `'(%d, %d, %d), dir=%s'` `%` `(x, y, z, zdir)``  ``ax.text(x, y, z, label, zdir)` `# Demo 2: color``ax.text(``9``, ``0``, ``0``, ``"red"``, color``=``'red'``)` `# Demo 3: text2D``# Placement 0, 0 would be the bottom left, 1, 1 would be the top right.``ax.text2D(``0.05``, ``0.95``, ``"2D Text"``, transform``=``ax.transAxes)` `# Tweaking display region and labels``ax.set_xlim(``0``, ``10``)``ax.set_ylim(``0``, ``10``)``ax.set_zlim(``0``, ``10``)``ax.set_xlabel(``'X axis'``)``ax.set_ylabel(``'Y axis'``)``ax.set_zlabel(``'Z axis'``)` `plt.show()`
    

    img

    3D拼图

    `import` `matplotlib.pyplot as plt``from` `mpl_toolkits.mplot3d.axes3d ``import` `Axes3D, get_test_data``from` `matplotlib ``import` `cm``import` `numpy as np` `# set up a figure twice as wide as it is tall``fig ``=` `plt.figure(figsize``=``plt.figaspect(``0.5``))` `# ===============``# First subplot``# ===============``# set up the axes for the first plot``ax ``=` `fig.add_subplot(``1``, ``2``, ``1``, projection``=``'3d'``)` `# plot a 3D surface like in the example mplot3d/surface3d_demo``X ``=` `np.arange(``-``5``, ``5``, ``0.25``)``Y ``=` `np.arange(``-``5``, ``5``, ``0.25``)``X, Y ``=` `np.meshgrid(X, Y)``R ``=` `np.sqrt(X ``*``*` `2` `+` `Y ``*``*` `2``)``Z ``=` `np.sin(R)``surf ``=` `ax.plot_surface(X, Y, Z, rstride``=``1``, cstride``=``1``, cmap``=``cm.coolwarm,``            ``linewidth``=``0``, antialiased``=``False``)``ax.set_zlim(``-``1.01``, ``1.01``)``fig.colorbar(surf, shrink``=``0.5``, aspect``=``10``)` `# ===============``# Second subplot``# ===============``# set up the axes for the second plot``ax ``=` `fig.add_subplot(``1``, ``2``, ``2``, projection``=``'3d'``)` `# plot a 3D wireframe like in the example mplot3d/wire3d_demo``X, Y, Z ``=` `get_test_data(``0.05``)``ax.plot_wireframe(X, Y, Z, rstride``=``10``, cstride``=``10``)` `plt.show()`
    

    img

  • 相关阅读:
    上云,你真的只差一本葵花宝典
    Linux Kernel 4.11首个候选版本开放下载
    Windows 10 host where Credential Guard or Device Guard is enabled fails when running Workstation (2146361)
    .NET技术+25台服务器怎样支撑世界第54大网站
    Azure 订阅和服务限制、配额和约束
    python再议装饰器
    python的上下文管理器-1
    python的上下文管理器
    python小知识点
    python做简易记事本
  • 原文地址:https://www.cnblogs.com/rrrrraulista/p/12431015.html
Copyright © 2020-2023  润新知