2013-08-11 12 views
5

Bir milyon satırlık üç sütunlu (x-piksel, y-piksel, z-değeri) verilere sahibim. Veri bir görüntüden ve çoğaltılan z değerleri var. Şimdi bir yüzey çizimi yapmam lazım. This image mükemmel bir örnektir. Ama şimdi çıktı görüntüsü boş. Birisi kodu kontrol edebilir mi lütfen?Scipy.interpolate sitesinden griddata nasıl kullanılır?

import numpy as np 
from enthought.mayavi import mlab 
from scipy.interpolate import griddata 
x,y,z = np.loadtxt('test.csv',delimiter=',',usecols=(0,1,2),unpack=True) 
xi,yi = np.mgrid[0:3000:3000j, 0:3000:3000j] 
zi = griddata((x, y), z, (xi, yi),method='linear') 
mlab.surf(xi,yi,zi) 
mlab.show() 
+0

neden "0: 3000: 3000j"? 0: 3000: 1 ' – pseudoDust

+0

'0: 3000: 1' eşit olmamalıdır. Belki 0: 3000'? – horchler

+0

İki yol aynıdır. Her ikisi de zi null yapar. – questionhang

cevap

4
Ben verilere sahip olmadan kodunu kontrol edemez, ama sorun uzayda ötesine noktaları Gridlenmiş varsa böylece, bir griddata argüman olarak varsayılan fill_value=nan kullandığınızı olduğundan şüpheleniyorsanız

(x, y) noktaları, ızgarada NaN'ler vardır, ki bu da mlabın işleyemeyebileceği (matplotlib kolay değil). fill_value=0 veya başka bir uygun gerçek sayı ayarlamayı deneyin.

İlgili konular