Basic usage#
This section demonstrates how to use PyVista to reading and plotting 3D data using the pyvista.examples module and external files.
Tip
This section of the tutorial was adopted from the Basic API Usage chapter of the PyVista documentation.
Using Existing Data#
There are two main ways of getting data into PyVista: creating it yourself from scratch or loading the dataset from any one of the compatible file formats. Since we’re just starting out, let’s load a file.
If you have a dataset handy, like a surface model, point cloud, or VTK file, you can use that. If you don’t have something immediately available, PyVista has a variety of files you can download in its pyvista.examples.downloads module.
Here’s a very basic dataset you can download.
from pyvista import examples
dataset = examples.download_saddle_surface()
dataset
PolyData | Information |
---|---|
N Cells | 5131 |
N Points | 2669 |
N Strips | 0 |
X Bounds | -2.001e+01, 2.000e+01 |
Y Bounds | -6.480e-01, 4.024e+01 |
Z Bounds | -6.093e-01, 1.513e+01 |
N Arrays | 0 |
Note how this is a pyvista.PolyData
, which is effectively a surface
dataset containing points, lines, and/or faces. We can immediately plot this with:
dataset.plot(color='tan')
This is a fairly basic plot. You can change how its plotted by adding
parameters as show_edges=True
or changing the color by setting color
to
a different value. All of this is described in PyVista’s API documentation in
pyvista.plot()
, but for now let’s take a look at another dataset. This
one is a volumetric dataset.
dataset = examples.download_frog()
dataset
Header | Data Arrays | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
This is a pyvista.UniformGrid
, which is a dataset containing a uniform
set of points with consistent spacing. When we plot this dataset, we have the
option of enabling volumetric plotting, which plots individual cells based on
the content of the data associated with those cells.
dataset.plot(volume=True)