2011-05-03 19 views
5

3D (2D haritalı) grafik oluşturmaya çalışırken sorunlarla karşılaşıyorum.Gnuplot ile 3B Haritalandırılmış Grafik Doğru değil

kullanıyorum üçüncü boyut

komut olarak kullanılan renk I, bir düzleştirilmiş bir 3D grafik gibi olmalıdır "eşleştirilmiş" 3 boyutlu normal dağılım yumru veya oluşturmalıdır üreten am verileri eşlenen grafik oluşturmak için şu şekildedir:

#!/usr/bin/gnuplot 

reset 

#set terminal png 
set term postscript eps enhanced 

set size square 
set xlabel "X position" 
set ylabel "Y position" 
#set zlabel "Synaptic Strength" 

#Have a gradient of colors from blue (low) to red (high) 
set pm3d map 
set palette rgbformulae 22,13,-31 

#set xrange [0:110] 
#set yrange [0:80] 
#set zrange [0:1] 

set style line 1 lw 1 

#set title "Title" 

#Don't want a key 
unset key 

#set the number of samples 
set dgrid3d 51,51 

set hidden3d 

splot DataFile u 1:2:3 

aşağıdaki veri dosyası (http://www.sendspace.com/file/ppibyw)

aşağıdaki çıktıyı almak çalıştırmak zaman enter image description here Bu gösterge, 0-0.03 aralığında bir z aralığı olduğunu belirtir, ancak veri dosyası 0.1 gibi çok daha büyük z değerlerine sahiptir. Açıkçası, o kadar yanlış bir grafik yayınlayamıyorum. Dahası, simülasyonumda neyin yanlış olduğuna dair daha iyi bir fikir edinmek için daha iyi bir grafiğe ihtiyacım var.

Gnuplot'un neden bu şekilde 3 boyutlu grafikler işlediğini bilen var mı? Numunelerin sayısı ve doğası ile ilgili olması gerektiğinden şüpheleniyorum.

+1

Merhaba puk, Komut dosyanızı denedim ve bariz hatayı yeniden üretebilirim (sürüm 4.4).İki şeyi deneyebilirim: 1: Önerdiğiniz gibi, puan sayısını azaltın ve ne olduğunu görün. 2: Her bir sayının basamak sayısını azaltın. Son çare olarak bulgularınızı alabilirsiniz (burada) (http://sourceforge.net/tracker/?group_id=2055&atid=102055). – Woltan

+0

@Woltan Etrafa baktım ve sorunu ortadan kaldırmak için kenarları daralttım. Yani 3x3 [0,0,0, 0,100,0, 0,0,0] dizileriniz varsa, 100'ün değeri, tüm çevredeki sıfırlara göre ortalaması alınacaktır. Matrix değeri başına bir dizi küçük kutu çizen bir çözüm buldum, ama b/c çökerttim çok fazla değer verdim, bu noktada pes ettim. Yanıt için – puk

cevap

7

Sorunun set dgrid3d 51,51

size set dgrid3d 51,102 (çok iyi) veya set dgrid3d 51,500 (çok kötü) yazarsanız neler olduğuna bir göz mü olduğunu

noktası olduğunu

(yardım itibaren)

Izgara eşit olarak x (satır) ve y (sütunlar) olarak aralıklıdır; z değerleri, ağırlıklı ortalamaları veya serpiştirilmiş noktaları 'z değerleri olarak hesaplanmıştır. başka bir deyişle, düzenli aralıklı bir ızgara oluşturulur ve ham verilere düzgün bir yaklaşımı tüm kılavuz noktaları için değerlendirilen şeklindedir. Sadece Bu yaklaşım çizilir, ancak ham veriler değil .

denemek ve (? Dgrid3d) yardımına bakın isterseniz yaklaşımı geliştirmek, ama yerine sadece veri düz planlarlardı başladı. Bunu dgrid3d komutunu tamamen terk ederek yapabilirsiniz. Veri dosyanızı değiştirmelisiniz, böylece x koordinatı değiştiğinde boş bir satır olacaktır.

3.10000000000000142109 4.15692193816530508599 0.00004084299890679580 
3.10000000000000142109 4.33012701892219364908 0.00001123746243460237 

3.15000000000000124345 0.08660254037844386521 0.00000816290100763514 
3.15000000000000124345 0.25980762113533162339 0.00001935936190868058 

Örneğin

için O zaman bu basitleştirilmiş komut

set terminal png![enter image description here][1] 

#set size square 
set xlabel "X position" 
set ylabel "Y position" 

#uncomment the next command to eliminate the mysterious glitch around x=3.4 
set yrange [0.1:4.5] 
set pm3d map 

set output "grid_merged.png" 
splot "grid_merged2.dat" u 1:2:3 
set output 
set term pop 

ile seni interpolated arsa ile elde daha iyidir plotting the actual data rather than interpolated data

olsun. Ben glitch aroung neden 3.4 emin değilim, diğer (haritasız) görünümlerde yok - yrange değiştirerek onu değiştirir - ben y aralığı değiştirdiğinden emin değilim, ancak simülasyon sonuçları açısından aldatıyor ....

+0

teşekkürler. Bu aslında çalışıyor. – puk