注釈
Go to the end をクリックすると完全なサンプルコードをダウンロードできます.
グローバルおよびローカルプロットテーマの制御#
PyVistaでは,グローバルなプロットテーマとローカルなプロットテーマを設定して,デフォルトのプロットパラメータを簡単に設定できます.
import pyvista as pv
from pyvista import examples
主題を比較するための単純なプロットルーチンを定義する.
mesh = examples.download_st_helens().warp_by_scalar()
def plot_example():
p = pv.Plotter()
p.add_mesh(mesh)
p.add_bounding_box()
p.show()
PyVistaのデフォルトのカラーテーマは,一般的に見やすいように選択されており,可視化プロジェクトで長時間作業する場合に最適です.グレーの背景と暖色のカラーマップは,暗い環境で作業しているときに3 Dレンダリングによって画面の明るさが大幅に変化しないように選択されています.
デフォルトのプロットテーマの例を次に示します. - これは,ローカルでサンプルを実行した後にデフォルトで表示されるテーマです.
pv.set_plot_theme('default')
plot_example()
PyVistaにはいくつかのプロットテーマも付属しています.
'ParaView'
: これは,ParaViewの既定のプロットテーマを模倣するように設計されています.'dark'
: 暗い背景とカラースキームを使用して,夜間モードに適した設計になっています.'document'
: これは,文書スタイルのプロットおよび文書品質図の作成に使用するために作成されています.
'ParaView'
テーマのデモ.
pv.set_plot_theme("paraview")
plot_example()
'dark'
テーマのデモ.
pv.set_plot_theme("dark")
plot_example()
'document'
テーマのデモを行います.このテーマは,オンラインの例で使用されています.
pv.set_plot_theme("document")
plot_example()
プロットウィンドウの背景には,カラーグラデーションを使用することもできます.
plotter = pv.Plotter()
plotter.add_mesh(mesh)
plotter.show_grid()
# Here we set the gradient
plotter.set_background("royalblue", top="aliceblue")
cpos = plotter.show()
グローバル・テーマの変更#
mesh.plot(show_edges=True)
などのプロット時に個々のパラメータを設定するか,グローバルテーマを設定することで,メッシュの表示方法を制御できます. pyvista.global_theme
を使用して,既定ですべてのメッシュを表示する方法を個々のパラメータでコントロールすることもできます.
ここでは,すべての pyvista
メッシュの現在のグローバルデフォルトを出力します.これらの値は,以前の "Document" テーマによって変更されています.
pv.global_theme
Document Theme
--------------
Background : Color(name='white', hex='#ffffffff', opacity=255)
Jupyter backend : trame
Full screen : False
Window size : [1024, 768]
Camera : {'position': [1, 1, 1], 'viewup': [0, 0, 1]}
Notebook : None
Font :
Family : arial
Size : 18
Title size : 18
Label size : 18
Color : Color(name='black', hex='#000000ff', opacity=255)
Float format : None
Auto close : True
Colormap : viridis
Color : Color(name='lightblue', hex='#add8e6ff', opacity=255)
Color Cycler : None
NaN color : Color(name='darkgray', hex='#a9a9a9ff', opacity=255)
Edge color : Color(name='black', hex='#000000ff', opacity=255)
Outline color : Color(name='black', hex='#000000ff', opacity=255)
Floor color : Color(name='gray', hex='#808080ff', opacity=255)
Colorbar orientation : horizontal
Colorbar - horizontal :
Width : 0.6
Height : 0.08
X Position : 0.35
Y Position : 0.05
Colorbar - vertical :
Width : 0.08
Height : 0.45
X Position : 0.9
Y Position : 0.02
Show scalar bar : True
Show edges : False
Lighting : True
Interactive : False
Render points as spheres : False
Transparent Background : False
Title : PyVista
Axes : Axes configuration
X Color : Color(name='tomato', hex='#ff6347ff', opacity=255)
Y Color : Color(name='seagreen', hex='#2e8b57ff', opacity=255)
Z Color : Color(name='blue', hex='#0000ffff', opacity=255)
Use Box : False
Show : True
Multi-samples : 8
Multi-renderer Split Pos : None
Volume mapper : smart
Smooth shading : False
Depth peeling :
Number : 4
Occlusion ratio : 0.0
Enabled : False
Silhouette :
Color : Color(name='black', hex='#000000ff', opacity=255)
Line width : 2
Opacity : 1.0
Feature angle : None
Decimate : None
Slider Styles :
Classic :
Slider length : 0.02
Slider width : 0.04
Slider color : Color(name='gray', hex='#808080ff', opacity=255)
Tube width : 0.005
Tube color : Color(name='white', hex='#ffffffff', opacity=255)
Cap opacity : 1.0
Cap length : 0.01
Cap width : 0.02
Modern :
Slider length : 0.02
Slider width : 0.04
Slider color : Color(hex='#6e7175ff', opacity=255)
Tube width : 0.04
Tube color : Color(hex='#b2b3b5ff', opacity=255)
Cap opacity : 0.0
Cap length : 0.01
Cap width : 0.02
Return Camera Position : True
Hidden Line Removal : False
Anti-Aliasing : msaa
Split sharp edges : False
Sharp edges feat. angle : 30.0
Before close callback : None
デフォルトでは, show_edges=True
を介してメッシュをプロットする際に明示的に指定しない限り,エッジはメッシュ上に表示されません.デフォルトのパラメータを変更することで,このデフォルトの動作をグローバルに変更できます.
pv.global_theme.show_edges = True
cpos = pv.Sphere().plot()
pyvistaをデフォルトの動作にリセットするには, restore_defaults
を使用します.図形の色は,ドキュメントテーマのデフォルトの色 'lightblue' ではなく,デフォルトの色 "白" にリセットされたことに注意してください.内部的には,適用された各テーマは, pyvista.global_theme
内に格納されたグローバルデフォルトプロットを変更します.
pv.global_theme.restore_defaults()
cpos = pv.Sphere().plot()
カスタム・テーマの作成とグローバルな適用#
既存のテーマの1つを修正し,それをグローバルプロットのデフォルトにロードすることで,カスタムテーマを作成できます.
ここでは,エッジを表示しながら既定でメッシュを赤でプロットする暗いテーマを作成します.
from pyvista import themes
my_theme = themes.DarkTheme()
my_theme.color = 'red'
my_theme.lighting = False
my_theme.show_edges = True
my_theme.axes.box = True
pv.global_theme.load_theme(my_theme)
cpos = pv.Sphere().plot()
カスタムテーマを作成して単一のプロッタに適用する#
この例では,ベースの "default" テーマからカスタムテーマを作成し,それを単一のプロッタに適用します. これは変更された DarkTheme
に設定されたままのグローバル "default" の動作を変えないことに注意してください.
この方法には,複数のテーマを管理し,1つまたは複数のプロッタに適用できるという利点があります.
from pyvista import themes
my_theme = themes.DocumentTheme()
my_theme.color = 'black'
my_theme.lighting = True
my_theme.show_edges = True
my_theme.edge_color = 'white'
my_theme.background = 'white'
cpos = pv.Sphere().plot(theme=my_theme)
または, Plotter
のインスタンスのテーマを設定します.
pl = pv.Plotter(theme=my_theme)
# pl.theme = my_theme # alternatively use the setter
pl.add_mesh(pv.Cube())
cpos = pl.show()
ドキュメントのテーマを使用するにはリセット
pv.set_plot_theme("document")
Total running time of the script: (0 minutes 10.062 seconds)