インストール#
PyVistaはPythonのバージョン3.8+でサポートされています.
最高の経験を得るには,AnacondaをPython用の仮想環境およびパッケージマネージャとして使用し,Anacondaを使用してPyVistaをインストールする手順に従ってください.
依存関係#
PyVistaはVisualization Toolkit (VTK) とNumPyの上に構築されています-以下のプロジェクトはPyVistaに必要な依存関係です:
vtk - PyVistaはVTKライブラリから型を直接継承します.
NumPy - NumPy配列は,PyVistaのデータ配列アクセスのためのコア基盤を提供します.
matplotlib -
pyvista.ChartMPL
によるカラーマップと2Dプロットに使用されます.pillow - スクリーンショットの保存に使用する PIL フォークです.
imageio - 画像の読み込みとアニメーションの書き込みに使用されるライブラリです.
pooch - サンプルデータセットのデータ管理により,ユーザはチュートリアルをその場でダウンロードできます.
scooby - レポート作成およびデバッグ用ツール.
オプションの依存関係#
PyVistaには,以下のようなさまざまな追加ファイル形式を可視化し,読み取るためのオプションの依存関係がいくつか含まれています.
PyPI#
PyVistaは PyPI から pip
を使ってインストールできます:
pip install pyvista
PyVistaを拡張するすべての追加パッケージをインストールするには,次のように pip
を使ってインストールします.
pip install pyvista[all]
Anaconda#
conda
を使ってこのパッケージをインストールするには:
conda install -c conda-forge pyvista
GitHubから現在の開発ブランチをインストールする#
PyVistaに実装されているが,まだリリースされていない機能やバグ修正があるかもしれません.githubの最新の開発ブランチから pyvista
をインストールするには,以下のいずれかを使用します.
pip install -U git+https://github.com/pyvista/pyvista.git@main
あるいは,gitを使ってリポジトリーのクローンを作成し,pipを使ってインストールすることもできます.
git clone https://github.com/pyvista/pyvista.git
cd pyvista
pip install -e .
開発フラグ -e
に注意してください. これにより,pyvistaを変更するたびに再インストールすることなく,その場で変更することができます.
オプションの依存関係#
次に,オプションの依存関係とその目的の一覧を示します:
パッケージ |
目的 |
---|---|
|
インタラクティブなノートブックレンダリング |
|
ドキュメントのPyVista出力のキャプチャ |
|
知覚的に均一なカラーマップ |
|
海洋学的カラーマップ |
|
ムービーファイルの保存 |
|
フィルタを監視するためのステータスバー |
|
ベクトルレイトレーシング |
ソース/開発者#
あるいは,GitHubから PyVista にアクセスして以下のコマンドを実行し,ソースをダウンロード (クローニング) して最新バージョンをインストールすることもできます:
git clone https://github.com/pyvista/pyvista.git
cd pyvista
python -m pip install -e .
PyVistaの main
ブランチの最新のドキュメントは dev.pyvista.org にあります.
インストールのテスト#
次の例を実行して,インストールをテストできます:
>>> from pyvista import demos
>>> demos.plot_wave()
その他の例とデモを参照してください:
>>> from pyvista import examples
>>> from pyvista import demos
List all available examples.
>>> print(dir(examples))
List all available demos.
注釈
ソースリポジトリーのクローンを作成すると,より包括的なテストスイートを使用できるようになります.PyVistaソースをクローンしてテストする方法の詳細については,我々の Contributing Guide ,特に Testing のセクションをご覧ください.
CIサービスでの実行#
PyVistaを使ったGitHub Actions Workflowsでヘッドレス表示を設定する方法は pyvista/setup-headless-display-action をご覧ください.
過去には,TravisやAzure PipelinesなどのCIサービスを設定してPyVistaを実行するための pyvista/gl-ci helpers もサポートされていました.
MyBinderでの実行#
このセクションは, MyBinder のようなノートブックホスティングサービスで,ヘッドレスディスプレイでPyVistaをインストールして使いたい上級ユーザ向けです.
ノートPCホスティングサービス MyBinder でPyVistaを使い始めるのに便利な Cookiecutter については this project を見てください.
まず,Dockerコンテナに apt-get
を使って libgl1-mesa-dev
と xvfb
をインストールする必要がある.MyBinderの場合は, apt.txt
というファイルに以下を含めてください:
libgl1-mesa-dev
xvfb
次に,MyBinderでヘッドレスディスプレイを設定し, start
というファイルを作成し,Dockerコンテナが起動されるたびに実行される以下の設定スクリプトを含める必要があります.
#!/bin/bash
set -x
export DISPLAY=:99.0
export PYVISTA_OFF_SCREEN=true
which Xvfb
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
sleep 3
set +x
exec "$@"
あとはPyVistaをPythonの要件に組み込むだけで,データを可視化できるようになります.これらのタイプのサービスのためにPyVistaをセットアップするのにこれ以上の助けが必要なら,Discussionsページで開発者とチャットするか,MyBinderで現在PyVistaを使っている this repository を見てください.
リモートサーバーでの実行#
リモートサーバでPyVistaを使うには,上記のDockerの場合と同様のセットアップ手順が必要です.例として,AWS EC 2 Ubuntu 18.04 LTS ( us-east-1
の ami-0a313d6098716f372
)でPyVistaを使うための完全なステップを以下に示します.他のサーバも同様に動作します.
リモートサーバにログインしたら,Minicondaと関連するパッケージをインストールします:
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -p miniconda
echo '. $HOME/miniconda/etc/profile.d/conda.sh' >> ~/.bashrc && source ~/.bashrc
conda create --name vtk_env python=3.9
conda activate vtk_env
conda install nodejs # required when importing pyvista in Jupyter
pip install jupyter pyvista trame
# To avoid "ModuleNotFoundError: No module named 'vtkOpenGLKitPython' " when importing vtk
# https://stackoverflow.com/q/32389599
# https://askubuntu.com/q/629692
sudo apt update && sudo apt install python-qt4 libgl1-mesa-glx
次に,ヘッドレスディスプレイを設定します:
sudo apt-get install xvfb
export DISPLAY=:99.0
export PYVISTA_OFF_SCREEN=true
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
sleep 3
ポート転送を使用してサーバーに再接続し,Jupyterを起動します:
ssh -i "your-ssh-key" your-user-name@your-server-ip -L 8888:localhost:8888
conda activate vtk_env
jupyter lab --NotebookApp.token='' --no-browser --port=8888
Webブラウザで localhost:8888
にアクセスします.
WSLでの動作#
上記のリモートサーバの例と同様に,LinuxのWindowsサブシステムは可視化のためのXサーバを提供しません.その代わりに,WSLを立ち上げる最も早い方法は, JupyterLab を利用することです.
まず,Minicondaと関連パッケージによって,正しい環境がインストールされていることを確認します.
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
bash miniconda.sh -b -p miniconda
echo '. $HOME/miniconda/etc/profile.d/conda.sh' >> ~/.bashrc && source ~/.bashrc
conda create --name vtk_env python=3.9
conda activate vtk_env
conda install nodejs # required when importing pyvista in Jupyter
pip install jupyter pyvista trame
# To avoid "ModuleNotFoundError: No module named 'vtkOpenGLKitPython' " when importing vtk
# https://stackoverflow.com/q/32389599
# https://askubuntu.com/q/629692
sudo apt update && sudo apt install python-qt4 libgl1-mesa-glx
JupyterへのVTKリンク#
JupyterLabでvtkレンダリングの3Dオブジェクトを取得する方法は2つあります.まず,上記のリモートサーバ用の例に従って, ssh
の説明を省くことができます.
ヘッドレスディスプレイを設定します:
sudo apt-get install xvfb
export DISPLAY=:99.0
export PYVISTA_OFF_SCREEN=true
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
sleep 3
Jupyterを起動します:
jupyter lab --NotebookApp.token='' --no-browser --port=8888
Webブラウザで localhost:8888
にアクセスします.
最後にこのサンプルコードを追加すると,JupyterLabでインタラクティブな可視化が表示されるはずです.
import pyvista
pl = pyvista.Plotter(shape=(1, 2))
actor = pl.add_mesh(pyvista.Cube())
pl.subplot(0, 1)
actor = pl.add_mesh(pyvista.Sphere())
pl.set_background('orange', all_renderers=False)
pl.show()
これでJupyterフロントエンドに直接ビジュアライゼーションが表示されるようになったはずです.
Sphinx-Galleryでの実行#
あなたの conf.py
に, 次を追加します.
import pyvista
# necessary when building the sphinx gallery
pyvista.BUILDING_GALLERY = True
pyvista.OFF_SCREEN = True
# Optional - set parameters like theme or window size
pyvista.set_plot_theme('document')
pyvista.global_theme.window_size = np.array([1024, 768]) * 2
extensions = [
...
"sphinx_gallery.gen_gallery",
]
# Add the PyVista image scraper to SG
sphinx_gallery_conf = {
...
"image_scrapers": ('pyvista', ..., ),
...
}
また,静的なスクリーンショットの代わりに,動的な3Dシーンを埋め込むためのSphinx-Galleryスクレイパーもあります.このスクレイパーは,上記の文字列 'pyvista'
の代わりに, image_scrapers
パラメータに直接インスタンスを渡すことで,有効にすることができます.また、 pyvista.ext.viewer_directive
拡張機能を登録することで,有効にすることができます .
import pyvista
from pyvista.plotting.utilities.sphinx_gallery import DynamicScraper
# necessary when building the sphinx gallery
pyvista.BUILDING_GALLERY = True
pyvista.OFF_SCREEN = True
# Optional - set parameters like theme or window size
pyvista.set_plot_theme('document')
pyvista.global_theme.window_size = np.array([1024, 768]) * 2
extensions = [
...
"sphinx_gallery.gen_gallery",
"pyvista.ext.viewer_directive",
]
# Add the PyVista image scraper to SG
sphinx_gallery_conf = {
...
"image_scrapers": (DynamicScraper(), ..., ),
...
}