11. 軸グリッド

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

11.1. 基礎

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

../_images/EditAxesGrid.png

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

このダイアログでは、タイトル( X TitleY TitleZ Title )、タイトルとラベルのフォント( Title Font PropertiesLabel Font Properties )、そしてグリッドの色などの共通プロパティをそれぞれの軸の向きで変更することができます。軸のラベル付け以外にも、 Show Grid をチェックすることでグリッドをレンダリングすることができます。Axes Grid をお好みに合わせて設定したら、 SaveAsDefaultButton を使って選択内容を保存し、次回ParaViewを起動したときに自動的にロードされるようにすることができます。pqReset を使えば、いつでもParaViewのデフォルトに戻すことができます。

../_images/EditAxesGridDialog.png

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

11.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

Plus ボタンを使って、カスタム値を追加してください。ついでに、X Axis Label Font PropertiesX Axis Title Font Properties の色を赤に、同様にY軸の色を緑に変更してみましょう。タイトルのフォントサイズを18に大きくして目立たせると、次のような可視化結果が得られます(下図、左)。

AxesGridCustomLabels AxesGridCustomAxesToLabel

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

11.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.
 |
 ...