10. 軸グリッド

多くの場合、可視化のために背景の参照グリッドをレンダリングする必要があります--ここでは3D Render View について説明しますが、チャートビューの軸を考えてみます。このようなグリッドは、3D空間でのデータ境界と配置を理解するのに役立ちます。このような場合は、 Axes Grid を使用します。 Axes Grid は、レンダリングされたシーンの周囲にラベルを付けて3Dグリッドをレンダリングします。この章では、 Axes Grid の使用とカスタマイズについて詳しく説明します。

10.1. 基礎

Axes GridRender View を有効にするには、 Properties パネルを使用します。 View セクションで、 Axes Grid チェックボックスをオンにしてアクティブビューの Axes Grid をオンにします。

../_images/EditAxesGrid.png

Edit ボタンをクリックすると、 Axes Grid プロパティーのダイアログ( 図 10.1)がポップアップ表示され、 Axes Grid をカスタマイズできます。 Properties パネルと同様に、これは検索可能なダイアログであるため、ダイアログの上部にある Search ボックスを使用して目的のプロパティを検索できます。同時に、 pqAdvanced26 ボタンを使用して、パネルのデフォルトモードと詳細モードを切り替えることができます。

このダイアログを使用して、軸方向ごとに Title Font Properties および Label Font Properties を使用してタイトル( X TitleY Title 、および Z Title )、タイトルおよびラベルフォントなどの共通プロパティを変更できます。また、 Grid Color も変更できます。軸にラベルを付ける以外に、 Show Grid をチェックするとグリッドをレンダリングできます。 Axes Grid のセットアップが完了したら、 SaveAsDefaultButton を使用して選択内容を保存し、次回ParaViewを起動したときに自動的にロードされるようにすることができます。 ParaViewのデフォルトに戻すには、いつでも ReloadButton を使用できます。

../_images/EditAxesGridDialog.png

図 10.1 Edit Axes Grid ダイアログボックスは、Axes Grid をカスタマイズするために使用します。

10.2. 使用例

利用可能なカスタマイズをさらに詳しく見るために、可能なさまざまな可視化結果を見てから、 Edit Axes Grid ダイアログのプロパティーを使用してそれらを設定する方法を見てみましょう。これらの例では、ParaViewにパッケージされている disk_out_ref.ex2 サンプルデータセットを使用します。

AxesGridBasic AxesGridShowGrid

上の図では、左側がデフォルトの Axes Grid です。 Axes Grid の表示をオンにするだけで、このような表示が生成されます。シーンを操作しても、軸の配置は常にレンダリングされたジオメトリの背後に残ります。拡大ズームおよび縮小ズームすると、ラベルとティックは視覚的な手がかりに基づいて更新されます。

軸平面に沿ってグリッドを表示し、目盛およびラベルと位置合わせするには、 Show Grid チェックボックスをオンにして、右側に表示します。

デフォルト値では、グリッド化された面は常に最も遠い面になります。つまり、グリッド化された面はレンダリングされたジオメトリの後ろにとどまり、シーンを回転しても更新され続けます。レンダリングする境界ボックスの面を固定するには、 Faces To Render ボタン(これは拡張プロパティなので、 Edit Axes Grid ダイアログの Search ボックスを使用して検索する必要があります)を使用します。ここでは、1つの面、つまりXYの下面だけにラベルを付けるとします。その場合は、 Faces to Render ボタンをクリックしてポップアップ表示されるメニューの Min-XY 以外の面をすべてオフにします。これは実際にはmin-XY面を表示するだけですが、シーンを回転すると、面がデータセットよりもカメラに近づくとすぐに面が非表示になります。これは、デフォルトで Cull Frontfaces が有効になっているためです。 Cull Frontfaces のチェックを外すと、ParaViewはジオメトリの前に来る面の削除を中止し、次のように表示します。

../_images/AxesGridNoCulling.png

レンダリングする面をコントロールするだけでなく、ラベルを配置する場所もコントロールできます。Y軸に沿ってラベルを配置する方法をParaViewに決定させたいとしますが、X軸については、\(2.5\)\(0.5\)\(-0.5\)、および \(-4.5\) という値に明示的にラベルを付けたいとします。そのためには、Edit Axes Grid パネルの拡張モードであると仮定して、 X Axis Use Custom Labels をチェックします。 これにより、次に示すように値を追加できるテーブルウィジェットが表示されます。

../_images/AxesGridCustomLabelsWidget.png

pqPlus16 ボタンを使用して、カスタム値を追加します。その間に、 X Axis Label Font PropertiesX Axis Title Font Properties も変更して、Y軸と同様に赤に変更し、緑に変更します。タイトルのフォント・サイズを18に増やして目立つようにすると、次のように見えるようになります(左下)。

AxesGridCustomLabels AxesGridCustomAxesToLabel

ここでは、軸平面の両側にラベルが付いています。一方の辺だけにラベルを付ける場合は、 Axes To Label プロパティを使用して、 Min-XMin-Y 以外のすべての辺のチェックマークを外します。これにより、上の図のように表示されます。

10.3. pvpython での Axes Grid

pvpython では、 Axes Grid はレンダービューの AxesGrid プロパティとしてアクセスできます。

>>> renderView = GetActiveView()

# AxesGrid property provides access to the AxesGrid object.
>>> axesGrid = renderView.AxesGrid

# To toggle visibility of the axes grid,
>>> axesGrid.Visibility = 1

Axes Grid ダイアログボックスを使用して設定した Edit Axes Grid のすべてのプロパティは、この axesGrid オブジェクトで使用でき、次のように変更できます。

>>> axesGrid.XTitle = 'X Title'
>>> axesGrid.XTitleColor = [0.6, 0.6, 0.0]
>>> axesGrid.XAxisLabels = [-0.5, 0.5, 2.5, 3.5]

1.6.2 章 で説明したトレース機能を使えば、どのPython APIを使って Edit Axes Grid ダイアログの特定のプロパティを変更したり、help を使ったりするかを決定できることに注意してください。

>>> help(axesGrid)
Help on GridAxes3DActor in module paraview.servermanager object:

class GridAxes3DActor(Proxy)
 |  GridAxes3DActor can be used to render a grid in a render view.
 |
 |  Method resolution order:
 |      GridAxes3DActor
 |      Proxy
 |      __builtin__.object
 |
 |  Methods defined here:
 |
 |  Initialize = aInitialize(self, connection=None, update=True)
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  AxesToLabel
 |      Set the mask to select the axes to label. The axes labelled will be a subset of the
 |      axes selected depending on which faces are also being rendered.
 |
 |  CullBackface
 |      Set to true to hide faces of the grid facing away from the camera i.e. hide all
 |      back faces.
 |
 |  CullFrontface
 |      Set to true to hide faces of the grid facing towards from the camera i.e. hide all
 |      front faces.
 |
 |  DataPosition
 |      If data is being translated, you can show the original data bounds for the axes
 |      instead of the translated bounds by setting the DataPosition to match the
 |      translation applied to the dataset.
 |
 ...