MCPcopy Create free account
hub / github.com/NSLS2/PyXRF / _show_preview_spectrum_plot

Method _show_preview_spectrum_plot

pyxrf/model/lineplot.py:1498–1612  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1496 self._fig_preview.set_visible(False)
1497
1498 def _show_preview_spectrum_plot(self):
1499 # Completely redraw the plot each time the function is called
1500 self.prepare_preview_spectrum_plot()
1501
1502 # Remove all lines from the plot. This is not really needed, since the axes are cleared.
1503 # while len(self._lines_preview):
1504 # _ = self._lines_preview.pop()
1505 # if _.axes is not None:
1506 # _.remove()
1507
1508 # The list of color names
1509 color_names = get_color_name()
1510
1511 e_range = self.energy_range_preview
1512 e_range_supported = (EnergyRangePresets.SELECTED_RANGE, EnergyRangePresets.FULL_SPECTRUM)
1513 if e_range not in e_range_supported:
1514 logger.error(
1515 f"Spectrum preview: Unknown option for the energy range: {e_range}\n"
1516 "Please report the error to the development team."
1517 )
1518 # This is not a critical error, so we still can proceed
1519 e_range = EnergyRangePresets.FULL_SPECTRUM
1520
1521 p_type = self.plot_type_preview
1522 p_type_supported = (PlotTypes.LINLOG, PlotTypes.LINEAR)
1523 if p_type not in p_type_supported:
1524 logger.error(
1525 f"Spectrum preview: Unknown option for the plot type: {p_type}\n"
1526 "Please report the error to the development team."
1527 )
1528 p_type = PlotTypes.LINEAR
1529
1530 # Maximum number of points in the displayed dataset
1531 n_dset_points = self._datasets_max_size()
1532
1533 if e_range == EnergyRangePresets.SELECTED_RANGE:
1534 n_range_low, n_range_high = self.selected_range_indices(n_indexes=n_dset_points)
1535 else:
1536 n_range_low, n_range_high = 0, n_dset_points
1537
1538 # All available datasets, we will print only the selected datasets
1539 dset_names = list(self.io_model.data_sets.keys())
1540
1541 if p_type == PlotTypes.LINLOG:
1542 top_margin_coef = 2.0
1543 # Minimum for semilog plots may need to be computed, but 1.0 is good
1544 self.min_v_preview = 1.0
1545 self._ax_preview.set_yscale("log")
1546 else:
1547 top_margin_coef = 1.05
1548 self.min_v_preview = 0.0 # Minimum will always be 0 for linear plots
1549
1550 self.max_v_preview = 1.0
1551 self.min_e_preview = 1000.0 # Start with some large number
1552 self.max_e_preview = 0.1 # Start with some small number
1553 for n_line, dset_name in enumerate(dset_names):
1554 dset = self.io_model.data_sets[dset_name]
1555

Callers 1

Calls 8

_datasets_max_sizeMethod · 0.95
get_color_nameFunction · 0.85
keysMethod · 0.80
get_total_spectrumMethod · 0.80
updateMethod · 0.80

Tested by

no test coverage detected