2. カラーマップと伝達関数
新しいデータセットを開いてメッシュを見るとき、可視化ツールユーザが最初に行うことの1つは、スカラーデータを使ってメッシュに色を付けることです。カラーマッピングは、データをカラーにマッピングし、レンダリングイメージにカラーを表示する一般的な可視化テクニックです。当然ながら、データ配列を色にマッピングするには伝達関数(transfer function)を使用します。伝達関数を使用して、半透明サーフェスのレンダリングやボリュームレンダリングのために、データ配列を不透明度にマッピングすることもできます。この章では、データ配列をカラーと不透明度にマッピングする基本について説明します。
2.1. 基礎
カラーマッピング(多くの場合不透明度マッピングも含まれています)には、スカラーマッピングや擬似カラーリングなどさまざまな名前が付けられています。基本原則では、サーフェスメッシュまたはボリュームをレンダリングするときに、データ配列をカラーにマッピングします。データ配列は任意の値と型を持つことができるため、特定のデータ値がどのカラーにマップされるかを定義することができます。このマッピングは、カラーマップ( color maps )または伝達関数( transfer functions )と呼ばれるものを使用して定義されます。データ値からレンダリングプリミティブへのこのようなマッピングは、色だけでなく不透明度値についても定義することができるので、より一般的な用語である伝達関数( transfer functions )を使用します。
もちろん、データ配列で実際にレンダリング時に使用する赤、緑、青のカラー値が指定されている場合もあります(すなわち、伝達関数を全く使用していません)。これは、 Map Scalars
displayプロパティを使用して制御できます。詳細については、 sec:RenderView:DisplayProperties
を参照してください。この章では、 Map Scalars
が有効になっている場合、つまり、伝達関数を使用して配列をカラーや不透明度にマップする場合について説明します。
ParaView では、データ配列ごとに色と不透明度の伝達関数を個別に設定できます。ParaView は、伝達関数をその名前で識別されるデータ配列に関連付けます。同じ伝達関数は、異なる3Dビューまたはパイプラインの異なるステージの結果で同じ配列を使用してカラーリングする場合にも使用されます。2.2.1 章 を使用して、配列名と表現によって独立したカラーマップを作成することもできます。
ベクトルやテンソルなど、複数の成分を含む配列の場合、カラー/不透明度マッピングにマグニチュードを使用するか特定の成分を使用するかを指定できます。伝達関数自体と同様に、マルチコンポーネント配列をカラーにマップする方法の選択も配列名に関連付けられます。したがって、同じ名前を持つ配列で色付けされる2つのパイプラインモジュールは、不透明度および色について同じ伝達関数を使用するだけでなく、成分(component)/大きさ(magnitude)の選択機能も使用します。
Common Errors
初心者は、伝達関数が配列名に関連付けられていることを忘れがちであるため、あるビューに表示されているデータセットの伝達関数を変更すると、他のビューにも影響することに驚きます。ParaView では、値の解釈を誤る可能性があるため、同じ変数に対して異なる伝達関数を使用することは推奨されません。この警告にもかかわらず、別の伝達関数を使用する場合は、分離カラーマップ機能を使用できます( 2.2.1 章 を参照)。
色と不透明度には別々の伝達関数があります。不透明度伝達関数はボリュームレンダリングに使用され、サーフェスレンダリングに使用する場合はオプションとして使用されます。
2.1.1. paraview
でのカラーマッピング


図 2.12 Properties
パネル(左)と Active Variables Controls
ツールバー(右)で、カラーにする配列を選択するために使用するコントロール
Properties
パネルまたは Active Variables Controls
ツールバーを使用して、カラーマッピングに使用する配列を選択できます。最初にカラーを設定する配列を選択し、次にマルチコンポーネント配列のコンポーネントまたはマグニチュードを選択します。ParaView は、既存の伝達関数を使用するか、選択した配列に新しい伝達関数を作成します。
2.1.2. pvpython
でのカラーマッピング
これは、disk_out_ref.ex2
データセットのデータ配列を使用してカラーリングするサンプルスクリプトです。
from paraview.simple import *
# create a new 'ExodusIIReader'
reader = ExodusIIReader(FileName=['disk_out_ref.ex2'])
reader.PointVariables = ['V']
reader.ElementBlocks = ['Unnamed block ID: 1 Type: HEX8']
# show data in view
display = Show(reader)
# set scalar coloring
ColorBy(display, ('POINTS', 'V'))
# rescale color and/or opacity maps used to include current data range
display.RescaleTransferFunctionToDataRange(True)
simple
モジュールで提供されている ColorBy
ファンクションは、選択した配列に対して色と不透明度の伝達関数が正しく設定されていることを保証します。この配列は、すでに配列名に関連付けられている既存のものを使用しているか、新しいものを作成しています。2番目の引数として None
を ColorBy
に渡すと、スカラーカラーが表示されます。
2.2. paraview
での伝達関数の編集

図 2.13 パネルの主要なコンポーネントを示している paraview
にある Color Map Editor
パネル
paraview
では、 Color Map Editor
を使って色と不透明度の伝達関数をカスタマイズします。 Color Map Editor
の表示/非表示は、View > Color Map Editor メニューオプションを使用して切り替えることができます。
図 2.13 に示すように、パネルは Properties
パネルと同様のレイアウトに従います。このパネルには、アクティブなビューでアクティブなデータソース(またはフィルタ)に色を付けるために使用される伝達関数のプロパティが表示されます。アクティブソースがアクティブビューに表示されていない場合、またはスカラーカラーを使用していない場合、パネルは空になります。
プロパティパネルと同様に、よく使用されるプロパティがデフォルトで表示されます。 ボタンを使用すると、詳細プロパティの表示/非表示を切り替えることができます。また、
Search
ボックスに名前を入力して特定のプロパティを検索することもできます。
伝達関数が変更されるたびに再レンダリングが必要になり、時間がかかる場合があります。デフォルト値では、パネルは変更するたびにレンダリングを要求します。これを回避するには、 ボタンを切り替えます。オフにした場合は、
Render Views
ボタンを使用してパネルを手動で更新する必要があります。
ボタンをクリックすると、現在のカラーマップのアプリケーションのデフォルト設定が復元されます。
ボタンと
ボタンを使用すると、現在のカラーと不透明度の伝達関数とそのすべてのプロパティがデフォルトの伝達関数として保存されます。ParaView は、新しいデータ配列に色を付けるために伝達関数を設定する必要がある場合に、この関数を使用します。
ボタンをクリックすると、同じ名前の配列のデフォルトとして伝達関数が保存され、
ボタンをクリックすると、すべての配列のデフォルトとして伝達関数が保存されます。すでに設定されている伝達関数には影響しません。また、これはセッション間で保存されるため、ParaView は再起動後もこれを記憶します。
2.2.1. カラーマップの分離

図 2.14 カラーマップボタンの分離
現在のアクティブなリプレゼンテーションで ParaView に別のカラーマップを使用させるには、図 2.14 に示すボタンをクリックします。個別のカラーマップは、名前によって複数のリプレゼンテーションで共有されるのではなく、配列名とレプレゼンテーションに一意的に関連付けられます。
これはPythonでも簡単にできます。
from paraview.simple import *
Wavelet()
wavelet1Display = Show()
wavelet1Display.SetRepresentationType('Surface')
# set scalar coloring
ColorBy(wavelet1Display, 'RTData')
# set the usage of a Separate Color Map
wavelet1Display.UseSeparateColorMap = True
# or use the ColorBy interface directly
ColorBy(wavelet1Display, 'RTData', separate = True)
# display the same data in another view for comparison with different color map
# get layout
layout1 = GetLayout()
# split cell
layout1.SplitHorizontal(0, 0.5)
renderView1 = GetActiveView()
# Create a new 'Render View'
renderView2 = CreateView('RenderView')
# place view in the layout
layout1.AssignView(2, renderView2)
# set active view
SetActiveView(renderView2)
wavelet2Display = Show()
wavelet2Display.SetRepresentationType('Surface')
# Use the ColorBy interface to create a separated color map
ColorBy(wavelet2Display, 'RTData', separate = True)
# get separate color transfer function/color map for 'RTData'
separate_wavelet2Display_RTDataLUT = GetColorTransferFunction('RTData', wavelet2Display, separate=True)
# Apply a preset using its name.
separate_wavelet2Display_RTDataLUT.ApplyPreset('Cold and Hot', True)
ResetCamera(renderView1)
ResetCamera(renderView2)
RenderAllViews()
2.2.2. マッピングデータ

図 2.15 伝達関数エディタ(Transfer function editor)と関連プロパティ
Mapping Data
プロパティグループは、データをカラーまたは不透明度にマッピングする方法を制御します。伝達関数エディタウィジェットを使用して、カラーと不透明度の伝達関数を制御します。パネルには常に両方の伝達関数が表示されます。不透明度伝達関数が使用されるかどうかは、いくつかの要因によって異なります。
サーフェスメッシュレンダリングを行う場合、
Enable opacity mapping for surfaces
がチェックされている場合にのみ使用されます。ボリュームレンダリング時には、常に不透明度マッピングが使用されます。
リニアスケールではなく、ログスケールを使用してデータをカラーにマップするには、 Use log scale when mapping data to colors
をチェックします。データがゼロ以外の正の範囲にあると仮定します。ParaView はエラーを報告し、範囲がログマッピングに無効な場合は自動的に範囲を修正しようとします。
カラーマップの範囲は、データ値のカラーへのマッピングを制御する非常に重要なプロパティです。範囲は、便利なように多くの状況で自動的に更新できます。範囲の更新方法は、 Color Map Editor
の Automatic Rescale Range Mode
プロパティで制御されます。 Never
を選択すると、データ範囲は自動的に更新されません。 Grow and update on 'Apply'
を選択すると、ParaView は、 Properties
パネルで Apply
をクリックするたびに、現在のデータ範囲を含むようにカラー/不透明度マップ範囲を拡大します。したがって、データ範囲が変更された場合、タイムステップが変更されても、カラー/不透明度マップ範囲は影響を受けません。時間ステップの変化の範囲も拡大するには、 Grow and update every timestep
オプションを使用します。これで、タイムステップが変更されたときだけでなく、 Apply
でも範囲が更新されます。Grow は、カラー/不透明度マップ範囲が現在のデータ範囲を含むように拡大されるだけで、縮小されないことを示します。範囲を現在のデータ範囲と正確に一致させるには、 Clamp and update every timestep
オプションを使用します。これで、 Properties
パネルで Apply
を押すたびに、またはタイムステップを変更するたびに、範囲が正確なデータ範囲に固定されます。 Automatic Rescale Range Mode
の初期値は、 Settings
ダイアログ( 11.1.1 章 を参照)の General
設定 Transfer Function Reset Mode
で制御されます。
2.2.3. 伝達関数エディタ
伝達関数エディタ(Transfer function editor)を使用するのは非常に簡単です。不透明度エディタウィジェットとカラーエディタウィジェットのコントロールポイントは互いに独立しています。制御点を選択するには、その制御点をクリックします。選択すると、コントロールポイントが赤い円で強調表示され、コントロールポイントに関連付けられたデータ値がウィジェットの下の Data
入力ボックスに表示されます。空の領域をクリックすると、その位置に制御点が追加されます。制御点を移動するには、制御点をクリックしてドラッグします。選択したコントロールポイントに関連付けられたデータ値は、 Data
入力ボックスを使用して微調整できます。コントロールポイントを削除するには、コントロールポイントを選択し、Delete キーを入力します。マウスポインタは、Qtがイベントをエディタウィジェットに正しく送信するために伝達関数ウィジェット内にある必要があります。端点制御点は移動または削除できませんが、後述するように、伝達関数全体のスケールを変更して制御点を移動できます。
不透明度伝達関数ウィジェットでは、コントロールポイントを垂直方向に移動して、そのコントロールポイントに関連付けられた不透明度値をコントロールできます。カラー伝達関数ウィジェットでは、コントロールポイントをダブルクリックしてカラー選択ウィジェットをポップアップし、そのコントロールポイントに関連付けられたカラーを設定できます。
不透明度伝達関数ウィジェットでは、コントロールポイント間の補間を制御することもできます。コントロールポイントをダブルクリックすると、補間制御ウィジェットが表示され、補間に影響するシャープネスと中間点を変更できます。制御点をクリックしてドラッグし、補間の変化を確認します。
伝達関数エディタの上部にあるコンボボックスは、"Default" プリセットを素早く切り替えるために使われます。どのプリセットをデフォルトとするかは、後述する Favorites
ボタン でアクセスできる
Color Preset
マネージャーで設定することができます。

伝達関数ウィジェットの右側にあるいくつかのコントロールボタンは、次のアクションをサポートしています。
: パイプラインブラウザで選択したデータソース(アクティブソース)のデータ範囲を使用して、カラーおよび不透明度の伝達関数のスケールを変更します。これにより、伝達関数全体のスケールが変更されます。したがって、中間のコントロールポイントを含むすべてのコントロールポイントは、新しい範囲に合わせて均等に調整されます。
: ユーザーが指定した範囲を使用して、カラーおよび不透明度の伝達関数のスケールを変更します。ユーザーがカスタム範囲を入力するためのダイアログがポップアップ表示されます。
: 色と不透明度の伝達関数を、すべての時間ステップにわたるデータの値の範囲に再スケールします。この操作は、すべての時間ステップのデータを読み取る必要があるため、コストがかかる場合があります。
: ビューに表示される要素(セルまたは点)の値の範囲を使用して、カラーと不透明度の伝達関数のスケールを変更します。この操作では、表示されている要素に色の全範囲が割り当てられ、それ以外では表示されないパターンが表示される場合があります。
: コントロールポイントを移動することで、カラー変換機能を反転します。たとえば、。赤から緑への伝達関数は緑から赤への伝達関数に変換されます。これは、カラー伝達関数にのみ影響し、不透明度伝達関数は変更されません。
:プリセットからカラー伝達関数をロードします。
Color Preset
マネージャーダイアログボックスが表示され、ParaViewに含まれるカラーマップの1つを選択したり、プリセットをファイルから読み込むことができます。: 現在のカラー伝達関数をプリセットに保存します。
Color Preset
ダイアログボックスが表示され、伝達関数に名前を付けてファイルにエクスポートできます。不透明度関数は、伝達関数を使用して保存することもできます。
2.2.4. カラーマッピングパラメータ

図 2.16 カラーマッピングパラメータ(詳細プロパティを含む)。 Color Map Editor
(非表示)の右上にある歯車のアイコンをクリックすると、詳細プロパティが有効になります。
プロパティの Color Mapping Parameters
グループは、RGB、HSV、Lab、Diverging、またはLab/CIEDE 2000のいずれかのカラー補間空間の制御を含む、カラー変換機能の追加制御を提供します。 特定のカラーを持つカラーマップの範囲を下回るまたは上回るデータ値にカラーを適用するには、それぞれ拡張オプション Use Below Range Color
および Use Above Range Color
を有効にします。範囲の両側にあるデータに対して異なる色を選択できます。NaNを使用したカラーマッピング浮動小数点配列では、NaN値に使用するカラーと不透明度を選択できます。また、カラー変換機能でスムーズ補間を使用するか、マップを固定数のカラーに離散化するかを指定することもできます。
2.3. pvpython
での伝達関数の編集
pvpython
では、伝達関数オブジェクトにアクセスし、それらのプロパティを変更することで、伝達関数を制御します。次のスクリプトは、伝達関数オブジェクトにアクセスする方法を示しています。
from paraview.simple import *
# You can access the color and opacity transfer functions
# for a particular array as follows. These functions will
# create new transfer functions if none exist.
# The argument is the array name used to locate the transfer
# functions.
>>> colorMap = GetColorTransferFunction('Temp')
>>> opacityMap = GetOpacityTransferFunction('Temp')
色と不透明度の伝達関数にアクセスしたら、他のソースやビューなどと同様に、これらのプロパティを変更できます。Pythonのトレース機能を使用してこのAPIを検出することを強くお勧めします。
# Rescale transfer functions to a specific range
>>> colorMap.RescaleTransferFunction(1.0, 19.9495)
>>> opacityMap.RescaleTransferFunction(1.0, 19.9495)
# Invert the color map.
>>> colorMap.InvertTransferFunction()
# Map color map to log-scale preserving relative positions for
# control points
>>> colorMap.MapControlPointsToLogSpace()
>>> colorMap.UseLogScale = 1
# Return back to linear space.
>>> colorMap.MapControlPointsToLinearSpace()
>>> colorMap.UseLogScale = 0
# Change using of opacity mapping for surfaces
>>> colorMap.EnableOpacityMapping = 1
# Explicitly specify color map control points
# The value is a flattened list of tuples
# (data-value, red, green, blue). The color components
# must be in the range [0.0, 1.0]
>>> colorMap.RGBPoints = [1.0, 0.705, 0.015, 0.149,
5.0, 0.865, 0.865, 0.865,
10.0, 0.627, 0.749, 1.0,
19.9495, 0.231373, 0.298039, 0.752941]
# Similarly, for opacity map. The value here is
# a flattened list of (data-value, opacity, mid-point, sharpness)
>>> opacity.Points = [1.0, 0.0, 0.5, 0.0,
9.0, 0.404, 0.5, 0.0,
19.9495, 1.0, 0.5, 0.0]
# Note, in both these cases the controls points are assumed to be sorted
# based on the data values. Also, not setting the first and last
# control point to have same data value can have unexpected artifacts
# in the 'Color Map Editor' panel.
多くの場合、現在のデータ範囲に合わせてカラーマップと不透明度マップの尺度を変更する必要があります。これは次のように行います。
>>> source = GetActiveSource()
# Update the pipeline, if it hasn't been updated already.
>>> source.UpdatePipeline()
# First, locate the display properties for the source of interest.
>>> display = GetDisplayProperties()
# Reset the color and opacity maps currently used by 'display' to
# use the range for the array 'display' is using for color mapping.
# This requires that the 'display' has been set to use scalar coloring
# using an array that is available in the data generated. If not, you will
# get errors.
>>> display.RescaleTransferFunctionToDataRange()
2.4. カラー凡例

図 2.17 ParaView のカラー凡例(Color legend)
カラー凡例(Color legend)は、スカラーバーまたはカラーバーとも呼ばれ、レンダリングされたビューのデータ値に対応するカラーに関する情報をユーザに提供するように設計されています。 Color Map Editor
で表示/編集されている伝達関数に対応するカラー凡例の表示/非表示を切り替えるには、パネル上部にある ボタンを使用します。このボタンは、アクティブビューの凡例の表示/非表示に影響します。
図 2.17 に、カラー凡例のさまざまな構成要素を示します。デフォルトでは、タイトルは通常、マップされる配列(および非スカラーデータ配列のコンポーネント番号またはマグニチュード)の名前です。自動生成されたラベルは、カラー凡例の一方の側に表示され、もう一方の側には注釈が表示されます。オプションで、カラー凡例範囲の最小値と最大値を示す開始注釈と終了注釈を含めることもできます。
カラー凡例はマウスで操作できます。凡例をクリックしてドラッグし、ビューの任意の位置に配置することができます。また、マウスポインタを凡例の上に移動したときに表示される終端マーカーをクリックしてドラッグすることで、凡例の長さを変更することもできます。
2.4.1. カラー凡例パラメータ

図 2.18 paraview
の Edit Color Legend Parameters
カラー凡例パラメータを編集するには、 Color Map Editor
パネルの ボタンをクリックします。これにより、使用可能なパラメータを示す
Edit Color Legend Properties
ダイアログがポップアップ表示されます。変更は、アクティブビューの特定のカラー凡例にのみ影響します。
Edit Color Legend Properties
の最初のいくつかのオプションは、レンダリングビューでのカラー凡例の方向と位置を制御します。 Auto Orient
は、カラー凡例の方向の自動決定をオンにします。カラー凡例は、レンダリングビューの下部または上部にドラッグすると方向が水平に変わり、左側または右側にドラッグすると垂直に変わります。無効にすると、方向を選択できます。Orientation
コンボボックスでオプションを選択して、カラー凡例を表示します。 Window Location
オプションは、ウィンドウ内のカラー凡例の位置を制御します。値 AnyLocation
が選択されている場合、カラー凡例は特定の位置に強制されません。カラー凡例は、レンダリングビューでマウスでクリックしてドラッグすることによって配置できます。または、 Position
プロパティを[0, 1]からの範囲の分数座標で明示的に指定し、カラー凡例の左下コーナーが配置されるウィンドウ幅(または高さ)の分数を表すこともできます。カラー凡例がマウスと対話的に配置されている場合、 Window Location
オプションは自動的に AnyLocation
に変更されます。
タイトルテキストとタイトル、ラベル、注釈のフォントプロパティの明らかな変更のほかに、カラー凡例の外観を制御するパラメータがいくつかあります。
デフォルトでは、凡例が垂直方向に配置されている場合、凡例に合わせてタイトルは反時計回りに90度回転します。 Horizontal Title
チェックボックスをオンにすると、色凡例の方向に関係なく、色凡例のタイトルが水平になります。
Draw Annotations
は、注釈(開始注釈と終了注釈を含む)を描画するかどうかを指定します。
Draw Nan Annotation
を選択すると、 Color Map Editor
パネルに設定されたNaNカラーがカラー凡例のすぐ横に別のカラーボックスで表示されます。そのボックスに表示される注釈テキストは、 Nan Annotation
テキストを変更することで修正できます。

図 2.19 NaN注釈を示すカラー凡例
Automatic Label Format
がチェックされている場合、ParaView は、値と使用可能な画面領域に基づいて、数値の最適表現を選択しようとします。このチェックボックスをオフにすると、printf
形式の数値を明示的に指定できます。対象の値に明示的にラベルを付けるには、 Use Custom Labels
オプションを有効にします。このオプションを選択したときに表示されるテーブルに表示するラベル値を正確に指定できます。 Color Bar Thickness
は、凡例の厚さをコントロールするために使用されます。フォントサイズの指定方法と同様に、ポイント単位で定義されます。カラーバーの長さを明示的に設定するには、 Color Bar Length
を使用します。このプロパティは、ウィンドウの幅(カラー凡例が水平方向の場合)または高さ(垂直に方向付けられると)の範囲[0, 1]の割合として定義されます。
2.4.2. pvpython
でのカラー凡例
ビュー内のソースのスカラーマッピングに使用される伝達関数のカラー凡例またはスカラーバーを表示するには、表示プロパティでAPIを使用します:
>>> source = ...
>>> display = GetDisplayProperties(source, view)
# to show the color legend
>>> display.SetScalarBarVisibility(view, True)
# to hide the same
>>> display.SetScalarBarVisibility(view, False)
2.4.1 章 のようにカラー凡例プロパティを変更するには、まず特定のビューのカラー伝達関数のカラー凡例オブジェクトにアクセスする必要があります。これらは、ビュー内のソースの表示プロパティに似ています。
>>> colorMap = GetColorTransferFunction('Temp')
# get the scalar bar in a view (akin to GetDisplayProperties)
>>> scalarBar = GetScalarBar(colorMap, view)
# Now, you can change properties on the scalar bar object.
>>> scalarBar.TitleFontSize = 8
>>> scalarBar.DrawNanAnnotation = 1
2.5. アノテーション
簡単に言えば、注釈(アノテーション、Annotation)を使用すると、色の凡例の特定のデータ値にカスタムテキストを配置できます。最小および最大データマップ値注釈が自動的に追加されます。その他のカスタム注釈を追加するには、 Color Map Editor
を使用します。
注釈のリストは高度なプロパティなので、パネル上部の アイコンを使用して高度なプロパティの表示/非表示を切り替えるか、検索ボックスに
annotations
と入力する必要があります。 Annotations
ウィジェットが表示されます。これは基本的には、図 2.20 に示すように、ユーザーが値と注釈のペアではなく、キーと値のペアを入力できるリストウィジェットです。

図 2.20 Color Map Editor
パネルで注釈を追加/編集するためのウィジェット
ウィジェットの右側のボタンを使用して、エントリを追加または削除できます。 Value
列に注釈を付けるデータ値を入力し、 Annotation
列にその値で表示するテキストを入力します。
Tab ↹ (tab)キーを使用して、次のエントリを編集できます。テーブルの最後のエントリを編集した後に Tab ↹ を押すと、自動的に新しい行が追加されるので、ボタンをクリックしなくても簡単に注釈を追加できます。
一部の注釈テキストが凡例に表示されない場合があります。注釈が表示されない場合は、次の2つの理由が考えられます。第1に、付加された値は、カラー伝達関数のマップされた範囲外です。第2に、 Draw Annotations
は Color Legend Parameters dialog
でチェックされていません。
および
ボタンを使用して、注釈ウィジェットにデータ配列から固有の離散値を入力することができます。データ配列に存在する個別の値の数に基づいて、結果が得られない場合があります(代わりに、警告メッセージが表示されます。)。データ配列の値は、
ボタンを使用した場合は選択したソースオブジェクト、
ボタンを使用した場合は表示されているパイプラインオブジェクトから取得されます。
2.5.1. pvpython
での注釈
注釈(Annotation)は、カラーマップオブジェクトのプロパティです。目的のカラーマップにアクセスし、Annotations
プロパティを変更するだけです。
>>> colorMap = GetColorTransferFunction('Temp')
# Annotations are specified as a flattened list of tuples
# (data-value, annotation-text)
>>> colorMap.Annotations = ['1', 'Slow',
'10', 'Fast']
2.6. カテゴリカラー
一枚の絵は一千語に匹敵する(百聞は一見にしかず)と言われているから、絵に任せて話を進めます。カテゴリカラーマップを使用すると、図 2.21 に示すように、可視化結果をレンダリングできます。

図 2.21 離散カラーリングのためのカテゴリカルカラーマップを用いた可視化
スカラーカラーリングを考えるとき、通常はマッピングのことを話します。数値を色に変換します。ただし、数値が実際の数値ではなく、要素タイプや歯車タイプ( 図 2.21 のように)、一般的にはカテゴリなどの列挙である場合もあります。カラーを適用する値の範囲を指定する補間カラーマップを使用する従来の方法は、ここでは実際には機能しません。ユーザーは、離散的なステップの数、複数の制御点、および注釈を使って、いつでもトリックを使用することができますが、退屈で面倒です。
カテゴリカラーマップは、このような場合にエレガントなソリューションを提供します。連続的なカラー伝達関数の代わりに、ユーザは、これらの値に使用する離散値および色のセットを指定します。データ値がルックアップテーブルの値と正確に一致する要素の場合、paraview
は指定された色を描画します。それ以外の場合は、NaNカラーが使用されます。
カラー凡例またはスカラーバーも新しいモードに切り替わり、単一のバーではなく注釈付きのスワッチ(見本)がレンダリングされます。ルックアップテーブルの各値にカスタム注釈を追加できます。
2.6.1. カテゴリカラー: ユーザーインターフェース

図 2.22 Interpret Values As Categories
がチェックされている場合のデフォルトの Color Map Editor
paraview
にデータ配列がカラーリングのカテゴリとして扱われるようにするには、 Color Map Editor
パネルの Interpret Values As Categories
チェックボックスをオンにします。これがチェックされると、パネルはカテゴリモードに切り替わります。 Mapping Data
グループは非表示になり、 Annotations
グループは非詳細グループになります。つまり、図 2.22 に示すように、パネルに詳細プロパティが表示されていなくても注釈ウィジェットは表示されます。
注釈ウィジェットには、以前に追加された可能性のある注釈が表示されます。何も追加されていない場合は空になります。ウィジェットの横にあるボタンを使用する前と同様に、データ値に注釈を追加できます。ただし、今回は各注釈エントリにも色の列があります。色が指定されていない場合は、疑問符アイコンが表示されます。それ以外の場合は、カラー見本が表示されます。色見本または疑問符アイコンをダブルクリックして、そのエントリに使用する色を指定できます。または、 ボタンをクリックして、カテゴリカラーマップのプリセットコレクションから選択することもできます。
以前と同様に、Tab ↹ キーを使用して複数の値を編集および追加できます。そのため、最初にすべての目的の値を1つのパスに追加し、次にプリセットカラーマップを選択して追加した値のカラーを設定できます。プリセットの色が注釈付きの値よりも少ない場合は、追加の注釈の色を手動で設定する必要があります。
Common Erros
カテゴリカラーマップは、列挙を含むデータ配列用に設計されており、通常は整数配列です。ただし、浮動小数点数の配列にも使用できます。浮動小数点数を使用すると、注釈に指定された値がデータセット内の値と正確に一致しない場合があります(ユーザーが一致すると予想している場合でも)。その場合は、NaNカラーが使用されます。
2.6.2. pvpython
でのカテゴリカラー
>>> categoricalColorMap = GetColorTransferFunction('Modes')
>>> categoricalColorMap.InterpretValuesAsCategories = 1
# specify the labels for the categories. This is similar to how
# other annotations are specified.
>>> categoricalColorMap.Annotations = ['0', 'Alpha', '1', 'Beta']
# now, set the colors for each category. These are an ordered list
# of flattened tuples (red, green, blue). The first color gets used for
# the first annotation, second for second, and so on
>>> categoricalColorMap.IndexedColors = [0.0, 0.0, 0.0,
0.89, 0.10, 0.10]