python三维图形等值图_python绘制三维等值线电位

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-22 16:26   72   0

我在绘制三维电势等值线时遇到了麻烦。

我测量了2d箔上电子之间的电压降,保存为一个文本文件。

总共620个点的数据是在20*30cm的区域(它是620而不是600,因为我包括了第0列),这仅仅是箔的右上四分之一(所以总的箔尺寸是60*40cm,但是我只取了右上四分之一,假设箔会有对称的电压差,所以我可以在其他地方生成其余的数据点季度后)。测量从右上角(第20行,第31列)开始,沿着同一行,直到到达第0列,然后移回(第19行,第31列),再次沿行移动,直到到达第0列,然后返回(第18行,第31列),依此类推。这部分并不重要,但我写这篇文章只是为了给你提供更详细的信息。在

然后在python上,我试图将这个1D数据点变成(20,31)的数组形状。所以z[1]将是我的行[0]的整个列的数据点。在

我使用meshgrid生成x和y坐标的2D数组。

但是,当我试图绘制(x,y,z)时,会出现一个错误

“ValueError:第三个参数必须是格式字符串”

我试着自己解决这个问题,但不仅我不明白错误的含义,而且我已经浪费了足够的时间(将近4小时)。在

伙计们,请帮帮我,。同样,在弄清楚这一点之后,任何关于如何制作这些数据的对称版本的提示也将非常感谢。在

提前谢谢你。在

下面是代码和数据纺织#this code is written to plot 3d contour of electric potential

#############################################################################

#import module

from numpy import *

from pylab import *

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

#############################################################################

#read in textfile

V = loadtxt('march6_2d_foli.txt')

V_len = len(V) #length of data

#############################################################################

#create zeros for the electric potential

row=20

column = 31 #size of the top right quotient of 2d foil

z = zeros((row,column))

#x and y coordinates

x = array(range(column))

y = array(range(row))

xx,yy = meshgrid(x,y) #meshgrid for plotting 3d contour

#assigning V on each xy-plane

i = V_len-1 #iterate from backward due to the way that data was taken

for j in range(row):

#print j

for k in range(column):

#print k

z[j,k] = V[i]

i= i-1

#plot 3d contour of potential

fig=figure()

ax =Axes3D(fig)

ax.plot(xx,yy,z)

show()

3月6日_对开.txt在

^{pr2}$

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP