相关文章推荐
害羞的冲锋衣  ·  c# - ...·  1 年前    · 
# 定义两个函数 def z1(x,y): return 0.02 * x + 0.015 * y - 0.00008 * x * y + 0.00007 * x * x - 0.00002 * y * y + 15 def z2(x,y): return 0.02 * x + 0.015 * y - 0.00008 * x * y + 0.00007 * x * x - 0.00002 * y * y + 20 x = np.linspace(0,100,40,endpoint = False) y = np.linspace(0,300,40,endpoint = False) X, Y = np.meshgrid(x, y) Z1 = z1(X,Y) Z2 = z2(X,Y) fig = plt.figure() ax = plt.axes(projection='3d') ax.plot_surface(X, Y, Z1, rstride=1, cstride=1, cmap='viridis', edgecolor='none') ax.plot_surface(X, Y, Z2, rstride=1, cstride=1, cmap='viridis', edgecolor='none') # ax.plot_wireframe(X, Y, Z1,color = 'orange') # ax.plot_wireframe(X, Y, Z2,color = 'skyblue') ax.set_xlabel('x') ax.set_ylabel('y') ax.set_zlabel('z') #调整观察角度和方位角。这里将俯仰角设为60度,把方位角调整为35度 ax.view_init(60, 35) ax.set_title('surface') # C:/Users/Admin/Desktop/result.jpg为图片存储路径,改为你自己的路径即可 plt.savefig('C:/Users/Admin/Desktop/result.jpg') plt.show()

R语言绘制

library(plotly)
x = seq(0,100,5)
y = seq(0,400,5)
z = seq(15, 19,1)
z1 = outer(x, y, FUN = function(x, y) 0.02*x+0.015*y-0.00008*x*y+0.00007*x^2-0.00002*y^2+15)
z2 = outer(x, y, FUN = function(x, y) 0.02*x+0.015*y-0.00008*x*y+0.00007*x^2-0.00002*y^2+16)
plot_ly(showscale=FALSE)%>%add_surface(x=x,y=y,z=~z1,color="black")%>%add_surface(x=x,y=y,z=~z2,colors="red")

Matlab绘制

clear
x=-300:5:100;
y=-80:5:20;
for i=1:length(x)
    for j=1:length(y)
        z1(i,j)=0.02*x(i)+0.015*y(j)-0.00008*x(i).*y(j)+0.00007*x(i).^2-0.00002*y(j).^2+15;
        z2(i,j)=0.02*x(i)+0.015*y(j)-0.00008*x(i).*y(j)+0.00007*x(i).^2-0.00002*y(j).^2+20;
surf(y,x,z1)
hold on
mesh(y,x,z2)
shading interp
alpha(0.3)
colormap (summer)
axis([-100 30 -350 150 10 30])
xlabel('x')
ylabel('y')
zlabel('z')
title('surface')
				
基本XYZ立体绘命令 在科学目视表示(Scientific visualization)中,三度空间立体图是一个非常重要的技巧。本章将介绍MATLAB基本XYZ三度空间的各项绘命令。 mesh和plot是三度空间立体绘的基本命令,mesh可画出立体网状,plot则可画出立体曲面,两者产生的形都会依高度而有不同颜色。 下列命令可画出由函数 形成的立体网状: x=linspac...
import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np# 读取txt文件 data = np.genfromtxt("data.txt", delimiter=" ") x = data[:, 0] y = data[:, 1] z = data[:, 2]# 创建三维曲面...
import pandas import matplotlib.pyplot as plt # 可视化绘制 from sklearn.linear_model import Lasso,LassoCV,LassoLarsCV data = pd.read_csv('C://Users//TD//D... 2. 创建一个三维坐标系对象,使用ax = plt.axes(projection='3d')。 3. 使用scatter函数绘制散点,传入x、y、z三个坐标轴的数据。 4. 可以使用set_xlabel、set_ylabel、set_zlabel函数设置三个坐标轴的标签。 5. 最后使用show函数显示像。 示例代码如下: ```python import matplotlib.pyplot as plt from mpl_toolkits import mplot3d # 创建三维坐标系对象 fig = plt.figure() ax = plt.axes(projection='3d') # 生成数据 x = [1, 2, 3, 4, 5] y = [2, 3, 4, 5, 6] z = [3, 4, 5, 6, 7] # 绘制散点 ax.scatter(x, y, z) # 设置坐标轴标签 ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') # 显示像 plt.show()