Source code for mud.plot

import numpy as np
from matplotlib import pyplot as plt  # type: ignore

from mud.util import null_space


[docs]def plotChain(mud_chain, ref_param, color="k", s=100): num_steps = len(mud_chain) current_point = mud_chain[0] plt.scatter(current_point[0], current_point[1], c="b", s=s) for i in range(0, num_steps): next_point = mud_chain[i] points = np.hstack([current_point, next_point]) plt.plot(points[0, :], points[1, :], c=color) current_point = next_point plt.ylim([0, 1]) plt.xlim([0, 1]) # plt.axis('off') plt.scatter(ref_param[0], ref_param[1], c="r", s=s)
[docs]def plot_contours( A, ref_param, subset=None, color="k", ls=":", lw=1, fs=20, w=1, s=100, **kwds ): if subset is None: subset = np.arange(A.shape[0]) A = A[np.array(subset), :] numQoI = A.shape[0] AA = np.hstack([null_space(A[i, :].reshape(1, -1)) for i in range(numQoI)]).T for i, contour in enumerate(subset): xloc = [ref_param[0] - w * AA[i, 0], ref_param[1] + w * AA[i, 0]] yloc = [ref_param[0] - w * AA[i, 1], ref_param[1] + w * AA[i, 1]] plt.plot(xloc, yloc, c=color, ls=ls, lw=lw, **kwds) plt.annotate("%d" % (contour + 1), (xloc[0], yloc[0]), fontsize=fs)
[docs]def make_2d_normal_mesh(N=50, window=1): X = np.linspace(-window, window, N) Y = np.linspace(-window, window, N) X, Y = np.meshgrid(X, Y) XX = np.vstack([X.ravel(), Y.ravel()]).T return (X, Y, XX)
[docs]def make_2d_unit_mesh(N=50, window=1): X = np.linspace(0, window, N) Y = np.linspace(0, window, N) X, Y = np.meshgrid(X, Y) XX = np.vstack([X.ravel(), Y.ravel()]).T return (X, Y, XX)