pyvista.Plotter.add_mesh#
- Plotter.add_mesh(
- mesh: MatrixLike[float] | VectorLike[float] | DataSet | MultiBlock | _vtk.vtkAlgorithm,
- color: ColorLike | None = None,
- style: StyleOptions | None = None,
- scalars: str | NumpyArray[float] | None = None,
- clim: Sequence[float] | None = None,
- show_edges: bool | None = None,
- edge_color: ColorLike | None = None,
- point_size: float | None = None,
- line_width: float | None = None,
- opacity: float | OpacityOptions | Sequence[float] | None = None,
- flip_scalars: bool = False,
- lighting: bool | None = None,
- n_colors: int = 256,
- interpolate_before_map: bool | None = None,
- cmap: ColormapOptions | LookupTable | None = None,
- label: str | None = None,
- reset_camera: bool | None = None,
- scalar_bar_args: ScalarBarArgs | None = None,
- show_scalar_bar: bool | None = None,
- multi_colors: bool = False,
- name: str | None = None,
- texture: pyvista.Texture | NumpyArray[float] | None = None,
- render_points_as_spheres: bool | None = None,
- render_lines_as_tubes: bool | None = None,
- smooth_shading: bool | None = None,
- split_sharp_edges: bool | None = None,
- ambient: float | None = None,
- diffuse: float | None = None,
- specular: float | None = None,
- specular_power: float | None = None,
- nan_color: ColorLike | None = None,
- nan_opacity: float = 1.0,
- culling: CullingOptions | bool | None = None,
- rgb: bool | None = None,
- categories: bool = False,
- silhouette: SilhouetteArgs | bool | None = None,
- use_transparency: bool = False,
- below_color: ColorLike | None = None,
- above_color: ColorLike | None = None,
- annotations: dict[float, str] | None = None,
- pickable: bool = True,
- preference: PointLiteral | CellLiteral = 'point',
- log_scale: bool = False,
- pbr: bool | None = None,
- metallic: float | None = None,
- roughness: float | None = None,
- render: bool = True,
- user_matrix: TransformLike | None = None,
- component: int | None = None,
- emissive: bool | None = None,
- copy_mesh: bool = False,
- backface_params: BackfaceArgs | Property | None = None,
- show_vertices: bool | None = None,
- edge_opacity: float | None = None,
- **kwargs,
PyVistaがシーンにラップできるPyVista/VTKメッシュまたはデータセットを追加します.
この方法では,メッシュ表現を使用して,データセットのサーフェスやジオメトリを表示します.ボリュームレンダリングについては
pyvista.Plotter.add_volume()を参照.以下のパラメータのほとんどがどのようなものであるかは,
pyvista.Propertyを参照してください.- パラメータ:
- mesh
DataSet|MultiBlock| vtkAlgorithm Any PyVista or VTK mesh is supported. Also, any dataset that
pyvista.wrap()can handle including NumPy arrays of XYZ points. Plotting also supports VTK algorithm objects (vtkAlgorithm and vtkAlgorithmOutput). When passing an algorithm, the rendering pipeline will be connected to the passed algorithm to dynamically update the scene (see VTKアルゴリズムでプロットする for examples).- color
ColorLike,optional メッシュ全体を単一のソリッドカラーにします.文字列,RGBリスト,または16進カラー文字列.例:
color='white',color='w',color=[1.0, 1.0, 1.0],color='#FFFFFF'.スカラーが指定されている場合,色は上書きされます.デフォルトは
pyvista.global_theme.colorです.- style
str,optional メッシュの表示スタイル.
style='surface',style='wireframe',style='points',style='points_gaussian'のいずれかです.デフォルトは'surface'です.'wireframe'は外部ジオメトリのワイヤフレームのみを表示することに注意してください.'points_gaussian'はemissive,render_points_as_spheresオプションで変更することができます.- scalars
str|numpy.ndarray,optional メッシュの "色" に使用されるスカラー.メッシュ上に存在する配列の文字列名,またはメッシュ内のセル数または点の数と等しい配列を受け入れます.配列は単一のベクトルとしてサイズを設定する必要があります.
colorとscalarsが両方Noneの場合,アクティブスカラーが使用されます.- climsequence[
float],optional スカラーの2項目カラーバーの範囲.デフォルトはスカラー配列の最小値と最大値です.例:
[-1, 2].rngもこの別名として認められています.- show_edgesbool,
optional メッシュのエッジを表示します.ワイヤフレーム表示には適用されません.
- edge_color
ColorLike,optional show_edges=Trueの場合にエッジに適用される単色です.文字列,RGBリスト,または16進カラー文字列.デフォルトは
pyvista.global_theme.edge_colorです.- point_size
float,optional プロットされたデータセット内の任意のノードのポイントサイズ. style='points' の場合にも適用できます.デフォルト
5.0.- line_width
float,optional 線の太さ.ワイヤフレーム表示とサーフェス表示にのみ有効です.デフォルトは
Noneです.- opacity
float|str| array_like メッシュの不透明度.単一のfloat値を指定した場合,それはメッシュのグローバル不透明度になり,すべての場所に均一に適用されます.0から1の間である必要があります.文字列を指定して,スカラー範囲を定義済みの不透明度転送関数(オプションには,
'linear','linear_r','geom','geom_r'があります.)にマップすることもできます.文字列を使用して,スカラー配列をメッシュから不透明度にマップすることもできます(scalars引き数と同じ数の要素がなければなりません).または,長さがn_colors以下の配列であるカスタムメイドの転送関数を渡すこともできます.- flip_scalarsbool, default:
False cmapの方向を反転します.ほとんどのカラーマップでは,
*_rサフィックスも同様にこれを行うことができます.- lightingbool,
optional ビュー方向の照明を有効または無効にします.デフォルトは
Falseです.- n_colors
int,optional スカラーを表示するときに使用するカラーの数.デフォルトは256です.スカラーバーにもこの数の色があります.
- interpolate_before_mapbool,
optional 有効にすると,より滑らかなスカラー表示になります.デフォルトは
Trueです.Falseの場合,OpenGLはマップされたカラーを補間し,カラーマップに存在しないカラーを表示することがあります.- cmap
str|list|LookupTable, default:pyvista.plotting.themes.Theme.cmap If a string, this is the name of the
matplotlibcolormap to use when mapping thescalars. See Named Colormaps for supported colormaps.Only applicable for when displaying
scalars.colormapis also an accepted alias for this. Ifcolorcetorcmoceanare installed, their colormaps can be specified by name.また,色のリストを指定して,既存のカラーマップをカスタムカラーマップで上書きすることもできます.例えば,3色のカラーマップを作成するには,
['green', 'red', 'blue'].このパラメータには
pyvista.LookupTableを指定することもできます.このパラメータが設定されている場合,n_colorsのようなカラーマップを制御するすべてのパラメータは無視されます.- label
str,optional pyvista.Plotter.add_legend()でシーンに凡例を追加するときに使用する文字列ラベル.- reset_camerabool,
optional このメッシュをシーンに追加した後,カメラをリセットします.デフォルトの設定は
Noneで,このプロッタがすでに表示されている場合のみ,カメラがリセットされます.Falseの場合は,プロッターの状態に関係なく,カメラはリセットされません.Trueの場合,カメラは常にリセットされます.- scalar_bar_args
dict,optional スカラーバーをシーンに追加するときに渡すキーワード引数のディクショナリ.オプションについては
pyvista.Plotter.add_scalar_bar()を参照してください.- show_scalar_barbool,
optional Falseの場合,スカラーバーはシーンに追加されません.- multi_colorsbool |
str|cycler.Cycler| sequence[ColorLike], default:False pyvista.MultiBlockデータセットが与えられると,カスタムサイクラーを使って各ブロックを単色で塗りつぶします.もし
Trueなら,デフォルトの 'matplotlib' カラーサイクラーが使用されます.カスタムカラーサイクラーの使用法については
set_color_cyclerを参照.- name
str,optional 簡単に更新できるように,追加したメッシュ/アクターの名前.この名前のアクターがレンダリングウィンドウに既に存在する場合は,新しいアクターに置き換えられます.
- texture
pyvista.Textureornp.ndarray,optional 入力メッシュにテクスチャ座標がある場合に適用されるテクスチャです. これはMultiBlockデータセットでは動作しません.
- render_points_as_spheresbool,
optional 点をドットではなく球としてレンダリングします.
- render_lines_as_tubesbool,
optional 線分をフラットな線分ではなく太いチューブとして表示します.
line_widthで幅を制御します.- smooth_shadingbool,
optional Phongシェーディングアルゴリズムを使用した
True時にスムーズシェーディングを有効にします.False時にはフラットシェーディングを使用します.pbr=True時に自動的に有効になります. シェーディングのタイプ を参照してください.- split_sharp_edgesbool,
optional スムーズシェーディングでプロットする際に,30度を超えるシャープエッジを分割します. オプションのキーワード引数
feature_angleで角度を制御します. グローバルテーマやプロッタテーマで上書きされない限りはデフォルトではこれはFalseです. これを有効にすると,プロッタ内に入力メッシュのコピーが作成されることに注意してください. シェーディングのタイプ を参照してください.- ambient
float,optional 照明が有効な場合,これは,ビューアから放射された光源に向けられていないときにアクターに到達する0から1の範囲(デフォルトは0.0)の光の量です.
- diffuse
float,optional 拡散照明係数.デフォルト1.0.
- specular
float,optional 鏡面反射光の係数.デフォルト0.0.
- specular_power
float,optional 鏡面パワー.0.0から128.0.
- nan_color
ColorLike,optional プロットされたスカラー配列のすべての
NaN値に使用する色.- nan_opacity
float,optional NaN値の不透明度.0から1の間でなければなりません.デフォルトは1.0です.- culling
str,optional 選択された面はレンダリングされません.オプションは
'front'または'back'です.これは,高密度のサーフェイスメッシュ,特にエッジが表示されている場合に便利ですが,フラットメッシュが部分的に表示されることがあります.デフォルトはFalseです.- rgbbool,
optional スカラーとして2次元の配列が渡された場合には,それらの値をRGB(A)カラーとしてプロットします.
rgbaという別名もあります. Opacity (A) はオプションです. もしも"_rgba"で終わるスカラー配列が渡された場合,デフォルトではTrueになります. これは,このパラメータにFalseを設定することで上書きすることができます.- categoriesbool,
optional Trueに設定すると,スカラー配列内の一意の値の数がn_colors引数として使用されます.- silhouette
dict, bool,optional Trueに設定されている場合,メッシュのシルエットハイライトをプロットします.この機能は,3角形化されたPolyDataでのみ使用できます.dictとして,表示するシルエットのプロパティが含まれています.color:ColorLike,シルエットの色line_width:float,エッジ幅opacity: 0から1のfloat,エッジ透過性feature_angle:floatの場合は,角度を超える鋭いエッジを度単位で表示します.decimate: 0から1のfloat,間引きレベル
- use_transparencybool,
optional 不透明度マッピングを反転し,値を透明度に対応させます.
- below_color
ColorLike,optional スカラー範囲 (
clim) 未満の値の単色.これにより,スカラーバーbelow_labelが自動的に'below'に設定されます.- above_color
ColorLike,optional スカラー範囲 (
clim) 未満の値の単色.これにより,スカラーバーabove_labelが自動的に'above'に設定されます.- annotations
dict,optional 注釈の辞書を渡します.キーはスカラー範囲のfloat値で,スカラーバーに注釈を付けます.値は文字列注釈です.
- pickablebool,
optional このアクターを選択可能にするかどうかを設定します.
- preference
str, default: "point" mesh.n_points == mesh.n_cellsでスカラを設定した場合,このパラメータはスカラがどのようにメッシュにマッピングされるかを設定します. デフォルトの'point'では,スカラーはメッシュのポイントに関連付けられます. これは'point'または'cell'のいずれかです.- log_scalebool, default:
False データを色にマッピングするときは,ログスケールを使用します.0未満のスカラーは,表現可能な最小の正のfloatにマップされます.
- pbrbool,
optional メッシュが
PolyDataの場合,Physics Based Rendering(PBR)を有効にします.color引数を使用してベースカラーを設定します.- metallic
float,optional 通常,この値は実際のマテリアルでは0または1ですが,中間の値は有効です.このパラメータはPBR補間でのみ使用されます.
- roughness
float,optional この値は,0(光沢)と1(粗さ)の間である必要があります.光沢のあるマテリアルには,反射と高い鏡面反射部分があります.このパラメータは,PBR補間でのみ使用されます.
- renderbool, default:
True Trueのときに強制的にレンダーします.- user_matrix
TransformLike, default:np.eye(4) レンダリング前に Actor クラスに渡される行列.これはアクタ/レンダリングのみに影響し,入力ボリューム自体には影響しません.ユーザ行列は,レンダリング前にアクタに適用される最後の変換です.デフォルトは単位行列です.
- component
int,optional Set component of vector valued scalars to plot. Must be nonnegative, if supplied. If
None, the magnitude of the vector is plotted. See プロットベクトルコンポーネント for examples.- emissivebool,
optional ポイント/スプラットを発光する光源として扱います.
style='points_gaussian'の表現にのみ有効です.- copy_meshbool, default:
False If
True, a copy of the mesh will be made before adding it to the plotter. This is useful if you would like to add the same mesh to a plotter multiple times and display different scalars. Settingcopy_meshtoFalseis necessary if you would like to update the mesh after adding it to the plotter and have these updates rendered, e.g. by changing the active scalars or through an interactive widget. This should only be set toTruewith caution. Defaults toFalse. This is ignored if the input is a vtkAlgorithm subclass.- backface_params
dict|Property,optional バックフェイスレンダリングに使用する
pyvista.Propertyまたはパラメータの dict を指定します.例えば,オリエンテッドなサーフェスの内側と外側で異なる色を使用する場合に便利です.pyvista.Propertyを指定した場合は,バックフェイスレンダリングに直接使用されます.dictの場合,有効なキーはpyvista.Propertyの属性で,値は与えられたプロパティに使用する対応する値です.省略されたキー(またはデフォルトのbackface_params=None)は,対応するフロントフェイスのプロパティをデフォルトで使用します.- show_verticesbool,
optional styleが'points'でない場合,表面の外側の頂点をレンダリングします.以下のオプションのキーワード引数を使用すると,頂点のスタイルを制御することができます.vertex_color- 頂点の色vertex_style- スタイルを'points_gaussian'に変更します.vertex_opacity- 頂点の不透明度を制御します.
See 可視頂点 for examples.
- edge_opacity
float,optional メッシュのエッジの不透明度.メッシュのエッジの不透明度をグローバルに適用し,どこでも一様に適用される単一の浮動小数点値です. - 0と1の間でなければなりません.
注釈
edge_opacity は
SetEdgeOpacityを基礎メソッドとして使用し,VTKバージョン9.3以降を必要とします.もしSetEdgeOpacityが利用できない場合, edge_opacity` は 1 に設定されます.- **kwargs
dict,optional オプションのキーワード引数.
- mesh
- 戻り値:
pyvista.Actorメッシュのアクター.
例
プロッタに球を追加し,カスタムのスカラーバータイトルで表示します.
>>> import pyvista as pv >>> sphere = pv.Sphere() >>> sphere['Data'] = sphere.points[:, 2] >>> plotter = pv.Plotter() >>> _ = plotter.add_mesh(sphere, scalar_bar_args={'title': 'Z Position'}) >>> plotter.show()
1つのセルにRGBを使ってプロットします. なお,点の数とセル数は同じなので,
preference='cell'を渡す必要があります.>>> import pyvista as pv >>> import numpy as np >>> vertices = np.array( ... [ ... [0, 0, 0], ... [1, 0, 0], ... [0.5, 0.667, 0], ... [0.5, 0.33, 0.667], ... ] ... ) >>> faces = np.hstack([[3, 0, 1, 2], [3, 0, 3, 2], [3, 0, 1, 3], [3, 1, 2, 3]]) >>> mesh = pv.PolyData(vertices, faces) >>> mesh.cell_data['colors'] = [ ... [255, 255, 255], ... [0, 255, 0], ... [0, 0, 255], ... [255, 0, 0], ... ] >>> plotter = pv.Plotter() >>> _ = plotter.add_mesh( ... mesh, ... scalars='colors', ... lighting=False, ... rgb=True, ... preference='cell', ... ) >>> plotter.camera_position = 'xy' >>> plotter.show()
これが
preference=='point'とどう違うかに注意してください. これは,preference=='point'では各セル面が個別に色付けされているのに対し,各ポイントが個別に色付けされているからです.>>> plotter = pv.Plotter() >>> _ = plotter.add_mesh( ... mesh, ... scalars='colors', ... lighting=False, ... rgb=True, ... preference='point', ... ) >>> plotter.camera_position = 'xy' >>> plotter.show()
平面を一定の色でプロットし,その不透明度をポイントごとに変化させます.
>>> plane = pv.Plane() >>> plane.plot( ... color='b', ... opacity=np.linspace(0, 1, plane.n_points), ... show_edges=True, ... )
球体の点をz位置で色付けしながらGaussianスムージングでプロットします.
>>> mesh = pv.Sphere() >>> mesh.plot( ... scalars=mesh.points[:, 2], ... style='points_gaussian', ... opacity=0.5, ... point_size=10, ... render_points_as_spheres=False, ... show_scalar_bar=False, ... )
points_gaussian スタイルで球体をプロットし,半径でスケーリングします.
>>> N_SPHERES = 1_000_000 >>> rng = np.random.default_rng(seed=0) >>> pos = rng.random((N_SPHERES, 3)) >>> rad = rng.random(N_SPHERES) * 0.01 >>> pdata = pv.PolyData(pos) >>> pdata['radius'] = rad >>> pdata.plot( ... style='points_gaussian', ... emissive=False, ... render_points_as_spheres=True, ... )