2017-08-25 80 views
1

我在互聯網上瀏覽過,但我還沒有找到解決方案。設置mlab表面的顏色條範圍

我用mlab.pipeline.surface(mesh)繪製了同一幅圖中的不同曲面。我想用相同的顏色條來繪製它們。

在該圖中,曲面的右側部分處於相同的溫度,但由於每個表面的顏色條範圍不同,因此顏色不同。 我認爲應該有類似matplotlib.tricontourf(...,levels=...)來修復色條範圍。

surfacemesh

如何設置使用mlab的彩條範圍是多少?

+1

你能張貼你想達到什麼樣的一個簡短的例子?做出潛在答案會容易得多。 Stackoverflow有一個關於它的幫助頁面(https://stackoverflow.com/help/mcve) –

回答

0

您可以查看mlab的內置文檔。從help(mlab.pipeline.surface)

:vmax: vmax is used to scale the colormap. 
     If None, the max of the data will be used 

:vmin: vmin is used to scale the colormap. 
     If None, the min of the data will be used 

換句話說,你需要計算每跨數據集數據的全局最小值和全局最大值,並設置相同的極值爲你的每一個表面。請注意,您可以使用matplotlib的3D繪圖方法完全相同(甚至完全相同的關鍵字)。

切向注意:您的用例也可能受益於某些透明度,因爲您的曲面可能會彼此重疊,從而可能會妨礙可視化。浮現在腦海中的兩個關鍵字opacity也許(雖然不太可能)transparent

:opacity: The overall opacity of the vtk object. Must be a float. 
      Default: 1.0 
:transparent: make the opacity of the actor depend on the 
       scalar.