plot_spin_texture_arrows

FermiSurface.plot_spin_texture_arrows(spin_texture_contour_data: dict, arrow_color: str | list[str] | None = None, scale: float | None = None, scale_units: str = 'inches', units: str = 'inches', angles: str = 'uv', quiver_kwargs: dict | None = None)[source]

Plot spin texture as arrows (vectors) on Fermi surface contours.

This method visualizes the spin texture by drawing arrows that represent the in-plane spin components (sx, sy) at points along the Fermi surface contours. The arrow direction indicates the spin orientation and can be colored by various spin projections.

Parameters:
  • spin_texture_contour_data (dict) – Dictionary containing spin texture contour data with points, sx, sy, sz, and scalars.

  • arrow_color (str, list of str, or None, optional) – Color(s) for the arrows. If str, all arrows use same color. If list, different colors for each band. If None, colors based on scalars, by default None.

  • scale (float or None, optional) – Scale factor for arrow length. If None, matplotlib auto-scales, by default None.

  • scale_units (str, optional) – Units for the scale parameter, by default “inches”.

  • units (str, optional) – Units for arrow dimensions, by default “inches”.

  • angles (str, optional) – How to interpret arrow angles (‘uv’ for x,y components), by default “uv”.

  • cmap (str, optional) – Colormap name for scalar coloring, by default “plasma”.

  • norm (matplotlib.colors.Normalize, optional) – Normalization instance for color mapping, by default None.

  • quiver_kwargs (dict, optional) – Additional kwargs for matplotlib quiver function, by default None.

Returns:

None – This method adds quiver plots to the axes but returns None.

Notes

The arrows represent the in-plane spin components (sx, sy) while the color can represent any spin projection specified during contour generation.