kwant.wraparound.plot_2d_bands(syst, k_x=31, k_y=31, params=None, mask_brillouin_zone=False, extend_bbox=0, file=None, show=True, dpi=None, fig_size=None, ax=None)[source]

Plot 2D band structure of a wrapped around system.

This function is primarily useful for systems that have translational symmetry vectors that are non-orthogonal (e.g. graphene). This function will properly plot the band structure in an orthonormal basis in k-space, as opposed to in the basis of reciprocal lattice vectors (which would produce a “skewed” Brillouin zone).

If your system has orthogonal lattice vectors, you are probably better off using kwant.plotter.spectrum.


syst : kwant.system.FiniteSystem

A 2D system that was finalized from a Builder produced by kwant.wraparound.wraparound. Note that this must be a finite system; so kwant.wraparound.wraparound should have been called with keep=None.

k_x, k_y : int or sequence of float, default: 31

Either a number of sampling points, or a sequence of points at which the band structure is to be evaluated, in units of inverse length.

params : dict, optional

Dictionary of parameter names and their values, not including the momentum parameters.

mask_brillouin_zone : bool, default: False

If True, then the band structure will only be plotted over the first Brillouin zone. By default the band structure is plotted over a rectangular bounding box that contains the Brillouin zone.

extend_bbox : float, default: 0

Amount by which to extend the region over which the band structure is plotted, expressed as a proportion of the Brillouin zone bounding box length. i.e. extend_bbox=0.1 will extend the region by 10% (in all directions).

file : string or file object, optional

The output file. If None, output will be shown instead.

show : bool, default: False

Whether is to be called, and the output is to be shown immediately. Defaults to True.

dpi : float, optional

Number of pixels per inch. If not set the matplotlib default is used.

fig_size : tuple, optional

Figure size (width, height) in inches. If not set, the default matplotlib value is used.

ax : matplotlib.axes.Axes instance, optional

If ax is not None, no new figure is created, but the plot is done within the existing Axes ax. in this case, file, show, dpi and fig_size are ignored.


fig : matplotlib figure

A figure with the output if ax is not set, else None.


This function produces plots where the units of momentum are inverse length. This is contrary to kwant.plotter.bands, where the units of momentum are inverse lattice constant.

If the lattice vectors for the symmetry of syst are not orthogonal, then part of the plotted band structure will be outside the first Brillouin zone (inside the bounding box of the brillouin zone). Setting mask_brillouin_zone=True will cause the plot to be truncated outside of the first Brillouin zone.

Previous topic


Next topic

4.6. kwant.qsymm – Integration with Qsymm

This Page