def plot_insert(insert_x, insert_y, width, length, circle_centre): circle, ellipse = visual_circle_and_ellipse(insert_x, insert_y, width, length, circle_centre) plt.figure() plt.plot(insert_x, insert_y) plt.axis("equal") plt.plot(circle["x"], circle["y"]) plt.title("Insert shape parameterisation") plt.xlabel("x (cm)") plt.ylabel("y (cm)") plt.grid(True) plt.plot(ellipse["x"], ellipse["y"])
def create_dvh(structure, dcm_struct, dcm_dose): structure_dose_values = find_dose_within_structure(structure, dcm_struct, dcm_dose) hist = np.histogram(structure_dose_values, 100) freq = hist[0] bin_edge = hist[1] bin_mid = (bin_edge[1::] + bin_edge[:-1:]) / 2 cumulative = np.cumsum(freq[::-1]) cumulative = cumulative[::-1] bin_mid = np.append([0], bin_mid) cumulative = np.append(cumulative[0], cumulative) percent_cumulative = cumulative / cumulative[0] * 100 plt.plot(bin_mid, percent_cumulative, label=structure) plt.title("DVH") plt.xlabel("Dose (Gy)") plt.ylabel("Relative Volume (%)")
def display_mu_density( grid, mu_density, grid_resolution=None, cmap=None, vmin=None, vmax=None ): """Prints a colour plot of the MU Density. Examples -------- See `pymedphys.mudensity.calculate`_. """ if grid_resolution is None: grid_resolution = grid["mlc"][1] - grid["mlc"][0] x, y = pcolormesh_grid(grid["mlc"], grid["jaw"], grid_resolution) plt.pcolormesh(x, y, mu_density, cmap=cmap, vmin=vmin, vmax=vmax) plt.colorbar() plt.title("MU density") plt.xlabel("MLC direction (mm)") plt.ylabel("Jaw direction (mm)") plt.axis("equal") plt.gca().invert_yaxis()
def plot_model(width_data, length_data, factor_data): i, j, k = create_transformed_mesh(width_data, length_data, factor_data) model_width, model_length, model_factor = i, j, k # model_width_mesh, model_length_mesh = np.meshgrid( # model_width, model_length) vmin = np.nanmin( np.concatenate([model_factor.ravel(), factor_data.ravel()])) vmax = np.nanmax( np.concatenate([model_factor.ravel(), factor_data.ravel()])) # vrange = vmax - vmin plt.scatter( width_data, length_data, s=100, c=factor_data, cmap="viridis", vmin=vmin, vmax=vmax, zorder=2, ) plt.colorbar() cs = plt.contour(model_width, model_length, model_factor, 20, vmin=vmin, vmax=vmax) plt.clabel(cs, cs.levels[::2], inline=True) plt.title("Insert model") plt.xlabel("width (cm)") plt.ylabel("length (cm)")
def plot_results( grid_xx, grid_yy, logfile_mu_density, mosaiq_mu_density, diff_colour_scale=0.1 ): min_val = np.min([logfile_mu_density, mosaiq_mu_density]) max_val = np.max([logfile_mu_density, mosaiq_mu_density]) plt.figure() plt.pcolormesh(grid_xx, grid_yy, logfile_mu_density, vmin=min_val, vmax=max_val) plt.colorbar() plt.title("Logfile MU density") plt.xlabel("MLC direction (mm)") plt.ylabel("Jaw direction (mm)") plt.gca().invert_yaxis() plt.figure() plt.pcolormesh(grid_xx, grid_yy, mosaiq_mu_density, vmin=min_val, vmax=max_val) plt.colorbar() plt.title("Mosaiq MU density") plt.xlabel("MLC direction (mm)") plt.ylabel("Jaw direction (mm)") plt.gca().invert_yaxis() scaled_diff = (logfile_mu_density - mosaiq_mu_density) / max_val plt.figure() plt.pcolormesh( grid_xx, grid_yy, scaled_diff, vmin=-diff_colour_scale / 2, vmax=diff_colour_scale / 2, ) plt.colorbar(label="Limited colour range = {}".format(diff_colour_scale / 2)) plt.title("(Logfile - Mosaiq MU density) / Maximum MU Density") plt.xlabel("MLC direction (mm)") plt.ylabel("Jaw direction (mm)") plt.gca().invert_yaxis() plt.show() plt.figure() plt.pcolormesh( grid_xx, grid_yy, scaled_diff, vmin=-diff_colour_scale, vmax=diff_colour_scale ) plt.colorbar(label="Limited colour range = {}".format(diff_colour_scale)) plt.title("(Logfile - Mosaiq MU density) / Maximum MU Density") plt.xlabel("MLC direction (mm)") plt.ylabel("Jaw direction (mm)") plt.gca().invert_yaxis() plt.show() absolute_range = np.max([-np.min(scaled_diff), np.max(scaled_diff)]) plt.figure() plt.pcolormesh( grid_xx, grid_yy, scaled_diff, vmin=-absolute_range, vmax=absolute_range ) plt.colorbar(label="No limited colour range") plt.title("(Logfile - Mosaiq MU density) / Maximum MU Density") plt.xlabel("MLC direction (mm)") plt.ylabel("Jaw direction (mm)") plt.gca().invert_yaxis() plt.show()