gpt4 book ai didi

python - matplotlib 3d 线框图

转载 作者:行者123 更新时间:2023-11-28 16:50:51 25 4
gpt4 key购买 nike

是的,所以我有一个 x 值、y 值和 z 值的列表(我认为我已将其转换为数组?),我想制作一个曲面图,但它不起作用。

这就是我正在尝试做的事情,您可以忽略大部分代码,因为它们非常不相关 - 只需看看我有 xdisydis 的结尾和 dist 以及我尝试绘制 atm 的地方我得到 ValueError: need more than 1 value to unpack :(。非常感谢帮助。

from math import *
from numpy import *
import pylab
def sweep (v,p,q,r,s):
a=.98

for i in range (1, len(v)-1):
for j in range (1, len(v)-1):
c =0.0

if i==p and j==q: c =1.0
if i==r and j==s: c= -1.0
v[i,j]=(v[i -1,j]+v[i+1,j]+v[i,j -1]+v[i,j+1]+c-a*v[i,j])/(4-a)

def main():
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
ydis=[]
xdis=[]
resis=[]
for j in range(2,18):
for i in range(2,18):
v= zeros ((20,20),float )
p=q=9
r=i
s=j
dv =1.0e10
lastdv =0
count =0
while (fabs(dv - lastdv)>1.0e-7*fabs(dv)):
lastdv =dv
sweep(v,p,q,r,s)
dv=v[p,q]-v[r,s]
resis.append(dv)
xdis.append(r-p)
ydis.append(s-q)

X=array(xdis)
Y=array(ydis)
Z=array(resis)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_wireframe(X,Y,Z)
plt.show()
main()

最佳答案

plot_wireframe期望三个二维数组 (X,Y,Z) 作为输入。所以,

之后:

X=np.array(xdis)
Y=np.array(ydis)
Z=np.array(resis)

添加:

X=X.reshape((-1,16))
Y=Y.reshape((-1,16))
Z=Z.reshape((-1,16))

关于python - matplotlib 3d 线框图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7935729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com