2017-08-25 23 views
1

私はインターネット上を見回しましたが、解決策が見つかりませんでした。mlab表面のカラーバーの範囲を設定する

同じ図の異なるサーフェスをmlab.pipeline.surface(mesh)でプロットしています。私は同じカラーバーでそれらをプロットしたいと思います。

この図では、サーフェスの右の部分は同じ温度になっていますが、サーフェスごとにカラーバーの範囲が異なるため、色が異なります。 カラーバーの範囲を修正するには、matplotlib.tricontourf(...,levels=...)のようなものがあるはずです。私はmlabを使用してカラーバーの範囲を設定するにはどうすればよい

surfacemesh

+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の3次元プロット方法では、まったく同じキーワード(正確に同じキーワードを使用して)を行うことができます。

接線方向:ビジュアライゼーションを妨げる可能性のあるサーフェスが互いに重なり合う可能性があるため、ユースケースには透明性の恩恵を受ける可能性があります。気になる2つのキーワードが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.