Pymatviz provides interactive widgets for Jupyter, Marimo, and VSCode notebooks using anywidget and MatterViz. These widgets allow for interactive 3D visualization of structures, composition analysis, and molecular dynamics trajectories.
Supported objects:
- Structures: pymatgen
Structure, ASE Atoms, and PhonopyAtoms. - Trajectories: ASE,
pymatgen, and plain Python formats.
Widget constructors mirror the props of the underlying MatterViz components. All plot widgets include control pane options: show_controls, controls_open, controls_toggle_props, and controls_pane_props.
from pymatviz import StructureWidget, CompositionWidget, TrajectoryWidget
from pymatgen.core import Structure, Composition
# Interactive 3D structure visualization
structure = Structure.from_file("structure.cif")
struct_widget = StructureWidget(structure=structure)
# Interactive composition visualization
composition = Composition("Fe2O3")
comp_widget = CompositionWidget(composition=composition)
# Interactive trajectory visualization
# Option 1: List of structures
trajectory1 = [struct1, struct2, struct3]
traj_widget1 = TrajectoryWidget(trajectory=trajectory1)
# Option 2: List of dicts with structure and properties
trajectory2 = [
{"structure": struct1, "energy": 1.0},
{"structure": struct2, "energy": 2.0},
{"structure": struct3, "energy": 3.0}
]
traj_widget2 = TrajectoryWidget(trajectory=trajectory2)