visplot#
- class cryocat.analysis.visplot.BaseBuilder(input_data, input_data_id=None, colors=None, separate_graphs=False, same_range_for_separate=True, opacity=None, grid_spec='column', color_type='palette')#
Bases:
object- build_trace(*args, **kwargs)#
- change_to_separate_graphs(message='', opacity=None, grid_spec='column')#
- plot_graph(*args, **kwargs)#
- plot_single(*args, **kwargs)#
- plot_subplots(*args, **kwargs)#
- process_second_axis_data(second_axis_data, second_axis_id, x_id='x')#
- update_graph_layout(**layout_setup)#
- update_layout_settings(**layout_setup)#
Update self.default_layout with overrides, keeping old values.
- class cryocat.analysis.visplot.Defaults(template: 'str' = 'plotly_white', height: 'int' = 500, width: 'Optional[int]' = None, showlegend: 'bool' = True, margin: 'dict' = <factory>, font_family: 'str' = 'Arial, sans-serif', font_size: 'int' = 14, colorway: 'Union[str, Sequence[Color]]' = 'Plotly', colorscale: 'Union[str, Colorscale, Sequence[Color]]' = 'Viridis', extra_layout: 'dict' = <factory>)#
Bases:
object- colorscale = 'Viridis'#
- colorway = 'Plotly'#
- extra_layout#
- font_family = 'Arial, sans-serif'#
- font_size = 14#
- height = 500#
- margin#
- showlegend = True#
- template = 'plotly_white'#
- to_layout_kwargs()#
Convert defaults into fig.update_layout kwargs (resolving names).
- width = None#
- class cryocat.analysis.visplot.Hist2DBuilder(input_data, input_data_id=None, second_axis_data=None, second_axis_id=None, nbinsx=40, nbinsy=40, x_range=None, y_range=None, hist_type='count', hist_norm=None, same_scale=False, colors=None, separate_graphs=False, same_range_for_separate=True, opacity=None, grid_spec='column')#
Bases:
BaseBuilder- build_trace(x, y, name, xbins, ybins)#
- plot_single(*args, **kwargs)#
- plot_subplots(*args, **kwargs)#
- prepare_trace_kwargs(showscale=None, coloraxis=None, colorbar=None)#
- class cryocat.analysis.visplot.HistBuilder(input_data, input_data_id=None, bins=20, hist_type='count', hist_norm='', opacity=None, colors=None, x_range=None, separate_graphs=False, same_range_for_separate=True, same_scale=False, grid_spec='column')#
Bases:
BaseBuilder- build_trace(y, name, color, x_range, xbins)#
- plot_single()#
- plot_subplots()#
- class cryocat.analysis.visplot.KDEBuilder(input_data, input_data_id=None, second_axis_data=None, second_axis_id=None, nbinsx=200, nbinsy=200, x_range=None, y_range=None, hist_type='count', hist_norm=None, same_scale=False, colors=None, same_range_for_separate=True, opacity=None, grid_spec='column')#
Bases:
Hist2DBuilder- build_trace(x_grid, y_grid, z_grid, zmax)#
- compute_kde(x_axis, y_axis)#
- list_max(same_scale=False)#
- normalize_ranges(ranges)#
- padded_limits(v, frac=0.05, min_pad=0.0, bw=None, k_bw=3.0)#
- plot_single(*args, **kwargs)#
- plot_subplots(*args, **kwargs)#
- class cryocat.analysis.visplot.ScatterBuilder(input_data, input_data_id=None, second_axis_data=None, second_axis_id=None, line_mode='markers', x_range=None, y_range=None, colors=None, separate_graphs=False, same_range_for_separate=True, opacity=None, grid_spec='column')#
Bases:
BaseBuilder- build_trace(x, y, name, color)#
- plot_single(*args, **kwargs)#
- plot_subplots(*args, **kwargs)#
- cryocat.analysis.visplot.apply_defaults(fig, **layout_overrides)#
Apply global defaults to an existing figure, with optional overrides.
- cryocat.analysis.visplot.convert_color_scheme(num_colors, color_scheme=None)#
- cryocat.analysis.visplot.convert_to_radial(coordinates, replace_nan=True)#
- cryocat.analysis.visplot.convert_to_spherical(coordinates)#
- cryocat.analysis.visplot.create_projection(coord, projection_type='stereo', split_into_hemispheres=True)#
- cryocat.analysis.visplot.create_smooth_polar_histogram(ax, histogram, hist_norm_value=None, colormap='viridis_r')#
- cryocat.analysis.visplot.fill_wedge(r1, r2, theta1, theta2, theta_step, **kargs)#
- cryocat.analysis.visplot.format_input_data(input_data, input_data_id, n_columns)#
- cryocat.analysis.visplot.format_input_data_id(input_data, input_data_id, default_name='Value')#
- cryocat.analysis.visplot.get_colors_from_palette(num_colors, pallete_name='tab10')#
Generate a list of color codes in hexadecimal format from a specified color palette.
- Parameters:
- num_colorsint
The number of distinct colors to generate.
- pallete_namestr, optional
The name of the color palette to use (default is “tab10”).
- Returns:
- list of str
A list containing the hexadecimal color codes.
Examples
>>> get_colors_from_palette(3) ['#1f77b4', '#ff7f0e', '#2ca02c'] >>> get_colors_from_palette(5, pallete_name="viridis") ['#440154', '#3b528b', '#21918c', '#5ec962', '#fde725']
- cryocat.analysis.visplot.plot_alignment_stability(input_dfs, labels=None, graph_title='Alignment stability', output_file=None)#
- cryocat.analysis.visplot.plot_class_occupancy(occupancy_dic, color_scheme=None, ax=None, show_legend=True, graph_title=None, output_file=None)#
- cryocat.analysis.visplot.plot_class_stability(subtomo_changes, color_scheme=None, ax=None, show_legend=True, graph_title=None, output_file=None)#
- cryocat.analysis.visplot.plot_classification_convergence(occupancy_dic, subtomo_changes_dic, color_scheme=None, graph_title=None, output_file=None)#
- cryocat.analysis.visplot.plot_fsc(input_data, pixel_size=None, box_size=None, output_path=None)#
Plot a Fourier Shell Correlation (FSC) curve using Plotly.
- Parameters:
- input_datastr or pandas.DataFrame
Data source. Accepted formats:
.csvMust contain a column
xand one or more ofuncorrected_fsc,corrected_fsc,mean_phase_fsc..xmlChimeraX-compatible FSC XML (
<coordinate><x>/<y>)..txtSingle-column file of FSC values. Requires pixel_size and box_size to compute the x-axis.
pandas.DataFrameSame column convention as
.csv.
- pixel_sizefloat, optional
Pixel size in Angstroms. Used to label the x-axis
1/Åand required when input_data is a.txtfile.- box_sizeint, optional
Box edge length in voxels. Required when input_data is a
.txtfile.- output_pathstr, optional
File path for saving the figure.
.htmlproduces an interactive Plotly file; any other extension usesfig.write_image()(requires the kaleido package).
- Returns:
- plotly.graph_objects.Figure
- cryocat.analysis.visplot.plot_histogram(input_data, input_data_id, bins=20, separate_graphs=False, hist_type='count', hist_norm='', same_range_for_separate=True, same_scale=False, colors=None, opacity=None, grid_spec='column')#
- cryocat.analysis.visplot.plot_histogram2D(input_data, input_data_id=None, second_axis_data=None, second_axis_id=None, nbinsx=40, nbinsy=40, x_range=None, y_range=None, hist_type='count', hist_norm=None, same_scale=False, colors=None, separate_graphs=False, same_range_for_separate=True, opacity=None, grid_spec='column')#
- cryocat.analysis.visplot.plot_kde(input_data, input_data_id=None, second_axis_data=None, second_axis_id=None, nbinsx=200, nbinsy=200, hist_type='count', hist_norm=None, colors=None, opacity=None, grid_spec='column', same_range_for_separate=False, same_scale=False)#
- cryocat.analysis.visplot.plot_kernel_density_estimation(input_data, input_data_id=None, nbinsx=200, nbinsy=200, colors=None)#
- cryocat.analysis.visplot.plot_line(input_data, input_data_id, separate_graphs=False, same_range_for_separate=False, colors=None, opacity=None, grid_spec='column')#
- cryocat.analysis.visplot.plot_orientational_distribution(coordinates, projection='stereo', graph_title=None, theta_bin=73, radius_bin=33, max_radius=None, colormap='viridis_r', output_file=None, show=True)#
- cryocat.analysis.visplot.plot_pca_summary(cumulative_variance, feature_importances, scatter_kwargs=None, bar_kwargs=None)#
Create a combined subplot fro PCA analysis: - Cumulative explained variance (line plot) - Feature importance (horizontal bar plot)
- Parameters:
- cumulative_variancendarray
Values of cumulative explained variance.
- feature_importancespd.Series
Series of feature importance (e.g., squared loadings) from PCA.
- Returns:
- figplotly.graph_objects.Figure
Combined plotly figure.
- cryocat.analysis.visplot.plot_polar_nn_distances(coordinates, distances, max_radius=None, marker_size=3, colormap='viridis_r', graph_title=None, output_file=None)#
- cryocat.analysis.visplot.plot_scatter2D(input_data, input_data_id, second_axis_data=None, second_axis_id=None, separate_graphs=False, same_range_for_separate=False, x_range=None, y_range=None, colors=None, opacity=None, grid_spec='column')#
- cryocat.analysis.visplot.plot_spherical_density(data, num_bins=10, mode='density', title='Spherical Histogram', phi_edges=None, theta_edges=None, colorscale='Viridis')#
- cryocat.analysis.visplot.plot_spherical_density_hist2d(input_data, input_data_id=None, nbinsx=10, nbinsy=10, x_range=None, y_range=None, hist_type='count', hist_norm='percent', normalize_coord=True, colors='Viridis', same_scale=False, same_range_for_separate=False, grid_spec='column')#
- cryocat.analysis.visplot.project_equidistant(coord)#
- cryocat.analysis.visplot.project_lambert(coord)#
- cryocat.analysis.visplot.project_points_on_sphere(coord, projection_type='stereo')#
- cryocat.analysis.visplot.project_stereo(coord)#
- cryocat.analysis.visplot.px_defaults(**overrides)#
Kwargs to pass into Plotly Express functions.
- cryocat.analysis.visplot.register_colorscale(name, hex_colors)#
Register a continuous colorscale from a list of colors (stops spread evenly).
- cryocat.analysis.visplot.register_palette(name, colors)#
Register a discrete palette (used for categorical colorway).
- cryocat.analysis.visplot.resolve_colors_any(spec=None, *, color_type='palette', n=None)#
- cryocat.analysis.visplot.resolve_colorscale(spec)#
Return a Plotly colorscale [(pos,color),…] from name or explicit input.
- cryocat.analysis.visplot.resolve_palette(spec)#
Return a list of colors given a name or explicit sequence.
- cryocat.analysis.visplot.scatter_with_histogram(data_x, data_y, bins_x=None, bins_y=None, colors_x=None, colors_y=None, edges_x=None, edges_y=None, axis_title_x=None, axis_title_y=None, output_file=None)#
- cryocat.analysis.visplot.set_defaults(**kwargs)#
Update global DEFAULTS. Nested ‘extra_layout’ is merged (shallow).
- cryocat.analysis.visplot.use_defaults(**overrides)#
Temporarily override DEFAULTS inside a ‘with’ block.