python 3d图

首先在进行 3D Plot 时除了导入 matplotlib ,还要额外添加一个模块,即 Axes 3D 3D 坐标轴显示:
之后要先定义一个图像窗口,在窗口上添加3D坐标轴,显示成下图:

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D



fig = plt.figure()

ax = Axes3D(fig)

这里写图片描述

接下来给进 X 和 Y 值,并将 X 和 Y 编织成栅格。每一个(X, Y)点对应的高度值我们用下面这个函数来计算

X = np.arange(-4, 4, 0.25)

Y = np.arange(-4, 4, 0.25)

X, Y = np.meshgrid(X, Y)

R = np.sqrt(X ** 2 + Y ** 2)

# height value

Z = np.sin(R)

画出3d图:rstride 和 cstride 分别代表 row 和 column 的跨度。

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'))
   Argument      Description

    ============= ================================================

    *X*, *Y*, *Z* Data values as 2D arrays

    *rstride*     Array row stride (step size), defaults to 10

    *cstride*     Array column stride (step size), defaults to 10

    *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

这里写图片描述

若改为:

ax.plot_surface(X, Y, Z, rstride=5, cstride=5, cmap=plt.get_cmap('rainbow'))

这里写图片描述

  • 画在xy平面的投影
    添加xy等高线的
ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow')

这里写图片描述

Argument Description

    ==========  ================================================

    *X*, *Y*,   Data values as numpy.arrays

    *Z*

    *zdir*      The direction to use: x, y or z (default)

    *offset*    If specified plot a projection of the filled contour

                on this position in plane normal to zdir
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值