使用Matplotlib在Python中绘制三曲面

使用Matplotlib在Python中绘制三曲面

三曲面图是一种曲面图,它是由有限个三角形组成的紧致曲面的三角剖分而成,这些三角形覆盖了整个曲面,使曲面上的每一个点都是三角形。任何两个三角形的交点都会产生空边或公共边或顶点。这种类型的绘图是在均匀采样网格具有限制性和不方便绘图的情况下创建的。通常,三曲面图是通过调用matplotlib库的ax.plot_trisurf()函数来创建的。下面列出了该函数的一些属性:

Attribute Parameter
X, Y, Z dataset作为要绘制的1D数组
颜色 表面补丁的颜色
提出 颜色贴图,设置表面补丁的颜色
规范 参数来规范化颜色的映射值
vmin 地图最小值
vamx 地图最大值
阴影 属性来对色彩进行着色

示例1

让我们使用ax.plot_trisurf()函数创建一个基本的三曲面图。

# Import libraries
from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
 
 
# Creating dataset
z = np.linspace(0, 50000, 100)
x = np.sin(z)
y = np.cos(z)
 
# Creating figure
fig = plt.figure(figsize =(14, 9))
ax = plt.axes(projection ='3d')
 
# Creating plot
ax.plot_trisurf(x, y, z,
                linewidth = 0.2,
                antialiased = True);
 
# show plot
plt.show()

输出 :

使用Matplotlib在Python中绘制三曲面

示例2

为了更好地理解,让我们再举一个例子。

# Import libraries
from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 
import numpy as np 
 
 
# Creating radii and angles
r = np.linspace(0.125, 1.0, 100) 
a = np.linspace(0, 2 * np.pi,
                100,
                endpoint = False) 
   
# Repeating all angles for every radius 
a = np.repeat(a[..., np.newaxis], 100, axis = 1) 
   
# Creating dataset
x = np.append(0, (r * np.cos(a))) 
y = np.append(0, (r * np.sin(a)))   
z = (np.sin(x ** 4) + np.cos(y ** 4))
   
# Creating figure
fig = plt.figure(figsize =(16, 9)) 
ax = plt.axes(projection ='3d') 
 
# Creating color map
my_cmap = plt.get_cmap('hot')
   
# Creating plot
trisurf = ax.plot_trisurf(x, y, z,
                         cmap = my_cmap,
                         linewidth = 0.2,
                         antialiased = True,
                         edgecolor = 'grey') 
fig.colorbar(trisurf, ax = ax, shrink = 0.5, aspect = 5)
ax.set_title('Tri-Surface plot')
 
# Adding labels
ax.set_xlabel('X-axis', fontweight ='bold')
ax.set_ylabel('Y-axis', fontweight ='bold')
ax.set_zlabel('Z-axis', fontweight ='bold')
     
# show plot
plt.show()

输出:

使用Matplotlib在Python中绘制三曲面

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Matplotlib.artist