python 理解Matplotlib 3D (三维图) 绘图函数 plot_surface 的 rstride 和 cstride参数

  • 总而言之, rstride 和 cstride是用来控制行平滑程度和列平滑程度的参数.

  • 其值最小为1, 最大可以无穷大, 但如果超过了X或Y的默认栅格数后, 将对图像无影响.

  • 当rstride 和 cstride的值为1时, 图像不会变化, 增加rstride 和 cstride的值, 会减少三维图像的平滑程度, 当其等于X或Y的默认栅格数时, 就变成一个单色面

  • 例如, 图像的X和Y默认栅格数为[4-(-4)]/0.25=40时:

  • 当rstride=cstride=1, 图像为:
    在这里插入图片描述

  • 当rstride=cstride=4, 图像为:
    在这里插入图片描述

  • 当rstride=cstride=40, 图像为:
    在这里插入图片描述

  • 当rstride=cstride=80, 图像为(可以看出相较rstride=cstride=40, 图像并未发生变化):
    在这里插入图片描述

  • 参考代码:

-- coding: utf-8 --

# author:           inspurer(月小水长)
# pc_type           lenovo
# create_date:      2019/1/23
# file_name:        3DTest
# github            https://github.com/inspurer
# qq_mail           2391527690@qq.com

# -*- coding: utf-8 -*-
"""
绘制3d图形
"""

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
# 定义figure
fig = plt.figure()
# 创建3d图形的两种方式
# 将figure变为3d
ax = Axes3D(fig)

#ax = fig.add_subplot(111, projection='3d')

# 定义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)
# 计算Z轴的高度
Z = np.sin(R)

# 绘制3D曲面


# rstride:行之间的跨度  cstride:列之间的跨度
# rcount:设置间隔个数,默认50个,ccount:列的间隔个数  不能与上面两个参数同时出现


# cmap是颜色映射表
# from matplotlib import cm
# ax.plot_surface(X, Y, Z, rstride = 1, cstride = 1, cmap = cm.coolwarm)
# cmap = "rainbow" 亦可
# 我的理解的 改变cmap参数可以控制三维曲面的颜色组合, 一般我们见到的三维曲面就是 rainbow 的
# 你也可以修改 rainbow 为 coolwarm, 验证我的结论
ax.plot_surface(X, Y, Z, rstride = 1, cstride = 1, cmap = plt.get_cmap('rainbow'))

# 绘制从3D曲面到底部的投影,zdir 可选 'z'|'x'|'y'| 分别表示投影到z,x,y平面
# zdir = 'z', offset = -2 表示投影到z = -2上
ax.contour(X, Y, Z, zdir = 'z', offset = -2, cmap = plt.get_cmap('rainbow'))

# 设置z轴的维度,x,y类似
ax.set_zlim(-2, 2)

plt.show()

引用文章
https://blog.csdn.net/ygdxt/article/details/86618606

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dontla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值