2010-03-23 60 views
2

我有形式的數據{ {x,y,z,f}...}我正在使用ListContourPlot3D但我得到的是一個空的方框,每個方向的尺寸爲-1到1。這裏是我的代碼:Mathematica ListcontourPlot3D

ListContourPlot3D[data5, PlotRange -> All, 
    AxesLabel -> {"[Beta]", "[Omega]", "Vo"}, Contours -> {1500}]. 

這是第一個5分我的數據:(一整套具有55點)

{{200, 20000 10^(1/3), 2000, 1226}, 
{200, 20000 10^(1/3), 2600, 1422}, 
{200, 20000 10^(1/3), 3200, 1581}, 
{200, 20000 10^(1/3), 3800, 1761}, 
{200, 20000 10^(1/3), 4400, 1872}} 

Dimensions[data5]回報{55,4} 如果我做IntegerPart[data5]這也是正確的做它它必須識別我的數據中的數字。

我很欣賞任何想法。 謝謝。

回答

1

如果沒有整個數據集很難分辨,但我打賭輪廓 - > {1500}設置存在問題。如果你完全忽略它或使用不同的值會發生什麼?

1

等高線 - >編號 圖等間距等高線輪廓。 輪廓 - > {num} 繪製f [x,y,z] = num輪廓。

你的意思是前者嗎?我懷疑ListContourPlot3D可以繪製您的數據,如果它太稀疏或本地化。對於您給我們的數據樣本x和y根本不會有所不同。在最終的數據集中x和y的變化是否足以填充座標空間?

1

@ Davorak的suggestion數據集,如書面,似乎沒有變化可能是問題的原因。假設情況並非如此,請嘗試旋轉生成的圖形,並且如果看到黑色平面出現,那麼它就是關閉的配色方案。默認情況下,ListContourPlot3D會產生不透明的表面,並且我遇到了似乎沒有產生任何東西的問題,但它僅僅是看不見的。解決方法:添加一個ContourStyle選項,並將其設置爲類似於Red

1

問題是在低分辨率下使用{x,y,z,f}形式的ListContourPlot3D。 我偶然發現了這幾個星期前爲好,這裏是錯誤的一個小例子:

xyzfdata[r_] := Flatten[#, 2] &@Table[{x, y, z, x^2 + y^2 + z^2 - 1}, 
    {x, -2, 2, r}, {y, -2, 2, r}, {z, -2, 2, r}]; 
(* Low resolution {x,y,z,f} fails *) 
ListContourPlot3D[xyzfdata[1], Contours -> {0}] 

在我的情況的解決方案(我有我的網格上的數據)是使用網格的形式和DataRange

fdata[r_] := Table[x^2 + y^2 + z^2 - 1, 
    {z, -2, 2, r}, {y, -2, 2, r}, {x, -2, 2, r}]; 
(* Low resolution works ok for array data *) 
ListContourPlot3D[fdata[1], Contours -> {0}, 
    DataRange -> 2 {{-1, 1}, {-1, 1}, {-1, 1}}] 

我認爲這個問題是,對於{X,Y,Z,F}形式,實現使用插值失敗低分辨率的方式。提高第一個例子中的分辨率,一切正常:

(* Higher resolution {x,y,z,f} works *) 
ListContourPlot3D[xyzfdata[.2], Contours -> {0}]