shnitsel.core.plot.kde

Functions

fit_kdes(noodle, geo_prop, geo_filter)

eval_kdes(kernels, xx, yy)

get_xx_yy(noodle[, fineness, extension])

fit_and_eval_kdes(noodle, geo_prop, geo_filter[, ...])

plot_kdes(xx, yy, Zs[, colors, levels, fill, fig, ax])

biplot_kde(frames[, at1, at2, at3, at4, geo_filter, ...])

Generates a biplot that visualizes PCA projections and kernel density estimates (KDE)

plot_cdf_for_kde(z, level[, ax])

Module Contents

fit_kdes(noodle, geo_prop, geo_filter)
eval_kdes(kernels, xx, yy)
Parameters:

kernels (list)

get_xx_yy(noodle, fineness=500, extension=0.1)
fit_and_eval_kdes(noodle, geo_prop, geo_filter, fineness=500, extension=0.1)
plot_kdes(xx, yy, Zs, colors=None, levels=None, fill=True, fig=None, ax=None)
biplot_kde(frames, at1=0, at2=1, at3=None, at4=None, geo_filter=None, levels=None, scatter_color='time', fill=True)

Generates a biplot that visualizes PCA projections and kernel density estimates (KDE) of a property (distance, angle, dihedral angle) describing the geometry of specified atoms. The property is chosen based on the number of atoms specified:

  • 2 atoms => distance

  • 3 atoms => angle

  • 4 atoms => dihedral angle

Parameters:
  • frames – A dataset containing trajectory frames with atomic coordinates.

  • at1 (int) – Indices of the first, second, third and fourth atoms for geometric property calculation.

  • at2 (int) – Indices of the first, second, third and fourth atoms for geometric property calculation.

  • at3 (int | None) – Indices of the first, second, third and fourth atoms for geometric property calculation.

  • at4 (int | None) – Indices of the first, second, third and fourth atoms for geometric property calculation.

  • geo_filter (list[tuple[float, float]] | None) – A list of tuples representing ranges. A KDE is plotted for each range, indicating the distribution of points for which the value of the geometry feature falls in that range.

  • levels (int | list[float] | None) – Contour levels for the KDE plot. Defaults to [0.08, 1]. This parameter is passed to matplotlib.axes.Axes.contour.

  • scatter_color (Literal['time', 'geo']) – Must be one of ‘time’ or ‘geo’. If ‘time’, the scatter-points will be colored based on the time coordinate; if ‘geo’, the scatter-points will be colored based on the relevant geometry feature (see above).

  • fill (bool) – Whether to plot filled contours (fill=True, uses ax.contourf) or just contour lines (fill=False, uses ax.contour).

Returns:

The computed KDE data for the atom-atom distance distribution.

Return type:

kde_dat

Notes

  • Computes a geometric property of the specified atoms across all frames.

  • Uses kernel density estimation (KDE) to analyze the distance distributions.

  • Performs PCA on trajectory pairwise distances and visualizes clustering of structural changes.

  • Produces a figure with PCA projection, cluster analysis, and KDE plots.

plot_cdf_for_kde(z, level, ax=None)