注釈
Go to the end をクリックすると完全なサンプルコードをダウンロードできます.
ポイントセルスカラー#
この例では,データセットに個々のセルの点スカラーを追加する方法を説明します.
import numpy as np
from pyvista import examples
は,サンプルの UnstructuredGrid から最初の 4 つのセルをロードします.すべての点が中心で結合されているため,点の数が32より少ないことに注意してください.
grid = examples.load_hexbeam().extract_cells(range(4))
grid
プロットポイントスカラー#
この時点では,このデータセットに点またはセルのスカラーだけを割り当てることができます.まず,簡単な点スカラーをプロットしてみよう.
grid.point_data['Point Data'] = range(grid.n_points)
grid.plot(scalars='Point Data')
プロットセルスカラー#
次に,セルのスカラーをプロットしてみます.単純にセルインデックスを元に代入しています.
grid.cell_data['Cell Data'] = range(grid.n_cells)
grid.plot(scalars='Cell Data')
セルを分割する#
もし,各セルの各ポイントにデータを割り当てて,それをプロットしたかったら,これらの6面体のセルはすべて同じポイントを共有しているので,単純に不可能です.個々のセルを分割するには, pyvista.DataSetFilters.separate_cells()
を使用してセルを分割します.
このフィルタを適用すると, pyvista.UnstructuredGrid
は32個のポイントを含むようになり,各セルに8個のポイントが含まれるようになりました.これは,各セルに8個ずつ,合計32個のポイントが含まれるようになります.
split_cells = grid.separate_cells()
split_cells
プロットポイント セルデータ#
これで,各セルに対して各ポイントの値をプロットできるようになりました.これもやはり点データに割り当てることになる.
ここではわかりやすくするために numpy.hstack()
を使っていますが,データの長さと点の数が一致していれば,この方法を使うことができるでしょう.
プロットされた値が,セル内では連続的に見え,セル間では不連続に見える様子をご覧ください.これは,有限要素法の解から応力と歪みがどのように計算されるかに一致します.
split_cells.point_data['Point Cell Data'] = np.hstack(
(
np.linspace(0, 8, 8), # cell 0
np.linspace(0, 12, 8), # cell 1
np.linspace(0, 16, 8), # cell 2
np.linspace(0, 20, 8), # cell 3
)
)
split_cells.plot(scalars='Point Cell Data')
Total running time of the script: (0 minutes 1.001 seconds)