如何生成的等高線圖是這樣的: contour http://www.fz-juelich.de/vislab/software/gsharp/Gsharp/userguide/interpolate/ex6.gif如何生成輪廓圖?
這是很容易,如果點是在規則網格上,但如果他們沒有什麼,就像在我的例子嗎?是否有一個相當簡單的算法來確定每個像素的顏色?
如何生成的等高線圖是這樣的: contour http://www.fz-juelich.de/vislab/software/gsharp/Gsharp/userguide/interpolate/ex6.gif如何生成輪廓圖?
這是很容易,如果點是在規則網格上,但如果他們沒有什麼,就像在我的例子嗎?是否有一個相當簡單的算法來確定每個像素的顏色?
查找二維插值。有一些簡單的算法,但它們可能表現不佳(或需要很長時間來計算)。
從here
產地的XYZ輪廓圖可以讓你甚至無須您的XYZ數據轉換成一個矩陣創建的等高線圖。它使用稱爲三角測量的插值形式。
三角剖分是將表面或平面多邊形劃分爲一組三角形,通常限制爲每個三角形邊完全由兩個相鄰三角形共享。三角形還具有能夠處理稀疏的額外好處作爲不規則數據。
所以聽起來好像很難,但可行的。
有很多插值算法可以用來獲得中間點。我在GIS中使用的一個是Kriging algorithm,它看起來像你發佈的數據使用類似的東西。 (可以說,因爲例如「熱黃」光點不上的黃色樣品中心,這將是與線性內插的情況下)
不同的數據可能需要不同的內插。
然後使用Gnuplot
as described here,創建彩色輪廓。
Looks like it can handle non-rectangular data,,但我會測試這個假設。
一個例子:
Example GnuPlot contour image http://t16web.lanl.gov/Kawano/gnuplot/fig/sample6.8b.png
它可以處理稀疏/不規則數據嗎? – BostonLogan 2009-11-18 19:31:19
所示的圖像是不是一個傳統的等高線圖。它基本上是matlab可能用pcolor函數產生的,如果該函數可以直接用於分散數據。實際上,pcolor只是衝浪,可以打電話查看(0,90)。
如果你真的想看到的等高線圖,最簡單的答案是使用tricontour,在文件交換中找到。該工具將對散佈的數據進行三角測量,然後生成等高線圖。
如果要生成一個離散數據集的令pColor樣的解決方案,那麼一個簡單的解決方案是使用德勞內三角測量數據,然後調用trisurf。該調用看起來依稀像這樣...
tri = delaunay(x,y);
trisurf(tri,x,y,z)
view(0,90)
誠然,這種解決辦法將不會給你的原始畫面的精美彩色圓形域。其他更復雜的解決方案將是必要的。但由於我不確定我上面提出的解決方案是否可以接受,我現在就會停下來。
也許它有點晚了,
在matplotlib的新版本不過你可以網格數據:
http://www.scipy.org/Cookbook/Matplotlib/Gridding_irregularly_spaced_data
也許它可以幫助
不一定需要是一個輪廓圖表,但看起來相似。有些人稱熱圖可能也有用。 – 2009-11-18 19:32:20