空间信息可视化

空间信息可视化

(1)绘制3d螺旋曲线图

编写代码如下,绘制3d螺旋曲线图:

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) #生成等差数列,100表示生成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 cureve')
ax.legend()
plt.show()

代码具体思路如下:

import matplotlib as mpl:导入Matplotlib库,并给它起了一个别名mpl,方便后续代码中使用。

from mpl_toolkits.mplot3d import Axes3D:从Matplotlib的工具包中导入Axes3D模块,这个模块允许创建三维图形。

import numpy as np:导入NumPy库,并给它起了一个别名np,NumPy是Python中用于科学计算的基础库。

import matplotlib.pyplot as plt:导入Matplotlib的pyplot模块,并给它起了一个别名plt,这个模块提供了MATLAB风格的绘图接口。

mpl.rcParams['legend.fontsize'] = 10:设置图例中字体的大小为10。

fig = plt.figure():创建一个新的图形对象fig

ax = fig.gca(projection = '3d'):获取当前图形对象的坐标轴对象ax,并设置其投影类型为三维(3D)。

theta = np.linspace(-4*np.pi, 4*np.pi, 100):使用NumPy的linspace函数生成一个等差数列,从-4π到4π,包含100个等间隔的数值。这个数列将用于参数曲线的x和y坐标的计算。

z = np.linspace(-2, 2, 100):生成另一个等差数列,从-2到2,包含100个等间隔的数值。这个数列将用于参数曲线的z坐标的计算。

r = z**2 + 1:计算每个z值的平方加1,得到一个与z等长的数组r。这个数组将用于计算x和y坐标。

x = r*np.sin(theta):根据参数方程计算x坐标,其中r是上一步计算得到的,theta是第一步生成的等差数列。

y = r*np.cos(theta):根据参数方程计算y坐标,使用与计算x坐标类似的方式。

ax.plot(x, y, z, label = 'parametric curve'):在三维坐标轴ax上绘制参数曲线,传入x、y、z坐标数组,并为这条曲线设置标签"parametric curve"。

ax.legend():在三维坐标轴上显示图例,根据之前设置的标签来标识不同的曲线。

plt.show():显示最终的三维参数曲线图形。

运行结果如下:

转载from

https://www.cnblogs.com/zrmw/p/8073903.html

(2)3d柱状图绘制

绘制3d柱状图,编写以下代码:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 构造需要显示的值
X = np.arange(0, 5, step=1# X轴的坐标
Y = np.arange(0, 9, step=1# Y轴的坐标
#
设置每一个(XY)坐标所对应的Z轴的值,在这边ZXY=X+Y
Z = np.zeros(shape=(5, 9))
for i in range(5):
    for j in range(9):
        Z[i, j] = i + j

xx, yy = np.meshgrid(X, Y)  # 网格化坐标
X, Y = xx.ravel(), yy.ravel()  # 矩阵扁平化
bottom = np.zeros_like(X)  # 设置柱状图的底端位值
Z = Z.ravel()  # 扁平化矩阵

width = height = # 每一个柱子的长和宽

#
绘图设置
fig = plt.figure()
ax = fig.gca(projection='3d'# 三维坐标轴
ax.bar3d(X, Y, bottom, width, height, Z, shade=True#
#
坐标轴设置
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z(value)')
plt.show()

运行结果如下:

转载from

【Python】如何使用matlibplot绘制3D柱形图_matplotlib三维柱形图-CSDN博客

  • 34
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值