2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 python_3D_поверхность
Сообщение24.09.2010, 17:26 
3Д-поверхность храниться в текстовом файле так:
Код:
-3.5000000000 0.0000000000 2.5000000000
-3.1036274810 0.5294292466 2.3019377358
-3.2096751106 0.9673153668 2.3019377358
-3.5000000000 0.0000000000 2.5000000000

-3.5000000000 0.0000000000 2.5000000000
-3.2096751106 0.9673153668 2.3019377358
-3.3659225510 1.2379438722 2.3019377358
-3.5000000000 0.0000000000 2.5000000000
...

координаты четырех вершин первой площадки, затем второй, и так далее.


Нужно написать скрипт, рисующий поверхность. Моя попытка написать скрипт представлена ниже. Проблема в том, что он рисует что-то не то, например, тестовый эллипсоид

Изображение
Uploaded with **invalid link**


этот же эллипсоид gnuplot строит нормально, но как рамочную поверхность

Изображение
Uploaded with **invalid link**


код: [ скачать ] [ спрятать ]
Используется синтаксис Python
#!/usr/bin/python
import pylab
from mpl_toolkits.mplot3d import Axes3D

from numpy import *
import numpy
import matplotlib

x,y,z = loadtxt('data.txt', usecols=[0,1,2], unpack=True)
print "data from data.txt = ", x,y,z

X, Y = numpy.meshgrid(x,y)
print "X=", X
print "Y=", Y

Z = matplotlib.mlab.griddata(x,y,z,X,Y,interp='nn')

print "Z=", Z

fig = pylab.figure()
axes = Axes3D(fig)
axes.plot_surface(X, Y, Z)
pylab.show()
 

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group