python 3dplot 不是等值x和y轴

python 3dplot 不是等值x和y轴
如题.比如x是从0.1到0.9(总共为9个数).y是0.001到0.025,以0.001为步长(总共25个数).z是225个数.也就是按x=0.1,y=0.001对应z第一个数,x=0.1,y=0.002对应z第一个数,..一直到x=0.9,y=0.025相对应z最后一个值.请问怎么用matplotlib将(x,y,z)画成3d曲线图.要用for循环么
labary 1年前 已收到1个回答 举报

zpkb 幼苗

共回答了14个问题采纳率:92.9% 举报

效果图
#分别准备三个数组,然后用plot画图
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
x = np.arange(0.1, 1.0, 0.1)
y = np.arange(0.001, 0.026, 0.001)
z = np.arange(1, 226, 1)
X,Y,Z = [],[],[]
for i in range(len(x)):
for j in range(len(y)):
X.append([x[i]])
Y.append(y[j])
Z = z

fig=plt.figure()
ax=Axes3D(fig)
ax.scatter3D(X, Y, Z)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()

1年前 追问

1

labary 举报

谢谢你!!这个就是我想要的。但是如果想让所有的点连成曲面,就是出一个曲面图该怎么再改一下呢?

举报 zpkb

是否是曲面图,跟数据有关,你给的数据画出来就是一个面,因为都是规律性的递增。

这个是另一个数据的曲面图

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d.axes3d import Axes3D
#x = np.arange(0.1, 1.0, 0.1)
#y = np.arange(0.001, 0.026, 0.001)
#z = np.arange(1, 226, 1)
#X,Y,Z = [],[],[]
#xL, yL = len(x), len(y)
#for i in range(xL):
#for j in range(yL):
#X.append([x[i]])
#Y.append(y[j])
#Z = z
x = np.arange(-3, 3, 0.25)
y = np.arange(-3, 3, 0.25)
X, Y = np.meshgrid(x, y)
Z = np.sin(X)+ np.cos(Y)
fig=plt.figure()
ax=Axes3D(fig)
ax.scatter(X, Y, Z)#scatter plot_wireframe
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 18 q. 0.125 s. - webmaster@yulucn.com