Plotting classes and functions#
Classes and functions for plotting spectra and SDFITS data
Core Functions and Classes#
Core plotting functions.
PlotBase#
Plot a spectrum using matplotlib
- class dysh.plot.plotbase.PlotBase[source]#
Bases:
objectThis class describes describes the common interface to all Plot classes.
- Attributes:
axisThe underlying
Axesobject.
Methods
fmt_scans([abbreviate])Format the scan numbers.
refresh()Refresh the plot
savefig(file[, hidebuttons])Save the plot
has_axes
has_figure
has_selector
show
- property axis#
The underlying
Axesobject.
SpecPlot#
Plot a spectrum using matplotlib
- class dysh.plot.specplot.MultiSpanSelector(ax, minspan=1, xy0=(0, 0))[source]#
Bases:
objectMethods
clear()Clear all regions.
clear_region([event])Clear a single region.
clear_regions([event])Clear all regions and start a new empty region.
Disconnect all event handlers to prevent memory leaks and dangling references.
get_selected_regions([ignore_incomplete])Add the first span selector to this object.
set_minspan(minspan)Set the minimum span in data units for the spans.
set_xy0(xy0)Set the bottom left coordinates in data units for the spans and their handles.
close
init_span
on_press
on_select
- disconnect()[source]#
Disconnect all event handlers to prevent memory leaks and dangling references.
- class dysh.plot.specplot.SpectrumPlot(spectrum, select=True, **kwargs)[source]#
Bases:
PlotBaseThe SpectrumPlot class is for simple plotting of a
Spectrumusing matplotlib functions. Plots attributes are modified using keywords (**kwargs) described below. SpectrumPlot will attempt to make smart default choices for the plot if no additional keywords are given.- Parameters:
- spectrum
Spectrum The spectrum to plot
- spectrum
- Attributes:
Methods
annotate_vline(xval[, text, rotation])Add a single annotated vline to the plot.
clear_overlays([blines, oshows, catalog])Clear Overlays from the plot.
fmt_scans([abbreviate])Format the scan numbers.
oshow(spectra[, color, linestyle, label, alpha])Add
spectrato the current plot.plot([show_header, select, oshow, oshow_kwargs])Plot the spectrum.
refresh()Refresh the plot
reset()Reset the plot keyword arguments to their defaults.
savefig(file[, hidebuttons])Save the plot
set_xaxis_unit(xunit)Set the units of the abscissa axis of the plot.
set_yaxis_unit(yunit)Set the units of the ordinate axis of the plot.
set_ydata(ydata[, keep_unit])Set the ordinate data values for the plot line.
show_baseline(y, *args, **kwargs)Show a baseline model with values
y.show_catalog_lines([rotation])Overlay spectral lines from various catalogs on the plot, with annotations.
Recompute the data limits based on the current artists (
relim), and then autoscale the view limits using the data limits (autoscale_view).clear_lines
default_plot_kwargs
get_selected_regions
has_axes
has_figure
has_selector
show
- Other Parameters:
- xaxis_unitstr or
Unit The units to use on the x-axis, e.g. “km/s” to plot velocity.
- yaxis_unitstr or
Unit The units to use on the y-axis.
- xminfloat
Minimum x-axis value, in
xaxis_unit.- xmaxfloat
Maximum x-axis value, in
yaxis_unit.- yminfloat
Minimum y-axis value, in
xaxis_unit.- ymaxfloat
Maximum y-axis value, in
yaxis_unit.- xlabelstr
x-axis label.
- ylabelstr
y-axis label.
- labelstr
Label for legend.
- alphafloat
Alpha value for the plot. Between 0 and 1.
- gridbool
Show a plot grid or not.
- figsizetuple
Figure size (see matplotlib).
- linewidthfloat
Line width, default: 2.0.
- drawstylestr
Line style, default ‘default’.
- colorstr
Line color, c also works.
- titlestr
Plot title.
- vel_framestr
The velocity frame (see VELDEF FITS Keyword).
- doppler_convention: str
The velocity convention (see VELDEF FITS Keyword).
- xaxis_unitstr or
- annotate_vline(xval, text='', rotation=0)[source]#
Add a single annotated vline to the plot. Can be cleared with the “catalog” gid.
- Parameters:
- xvalfloat
X value of the line, in the same units as the plot.
- textstr
Associated text for the vline. Defaults to an empty string.
- rotationfloat
Rotate the text CCW degrees. Default 0.
- clear_overlays(blines=True, oshows=True, catalog=True)[source]#
Clear Overlays from the plot.
- Parameters:
- blinesbool
Remove baseline models overlaid on the plot. Default: True
- oshowsbool
Remove other spectra overlaid on the plot. Default: True
- catalogbool
Remove catalog spectral lines overlaid on the plot. Default: True
- oshow(spectra, color=None, linestyle=None, label=None, alpha=None)[source]#
Add
spectrato the current plot.- Parameters:
- spectralist of
dysh.spectra.spectrum.Spectrumordysh.spectra.spectrum.Spectrum Spectra to add to the plot.
- colorlist of valid
matplotlibcolors ormatplotlibcolor Colors for the spectra. There must be one element per spectra.
- linestylelist of valid
matplotliblinestyles ormatplotliblinestyle Linestyles for the spectra. There must be one element per spectra.
- labellist of str
Labels for the spectra. There must be one element per spectra.
- alphalist of float
Alpha values for the spectra, between 0 and 1. There must be one element per spectra.
- spectralist of
- plot(show_header=True, select=True, oshow=None, oshow_kwargs=None, **kwargs)[source]#
Plot the spectrum.
- Parameters:
- show_headerbool
Show informational header.
- selectbool
Allow selecting regions via click and drag.
- oshowlist or
Spectrum Spectra to overlay in the plot.
- oshow_kwargsdict
Dictionary with parameters for
SpectrumPlot.oshow. These include color, linestyle, label, and alpha.
- Other Parameters:
- xaxis_unitstr or
Unit The units to use on the x-axis, e.g. “km/s” to plot velocity.
- yaxis_unitstr or
Unit The units to use on the y-axis.
- xminfloat
Minimum x-axis value, in
xaxis_unit.- xmaxfloat
Maximum x-axis value, in
yaxis_unit.- yminfloat
Minimum y-axis value, in
xaxis_unit.- ymaxfloat
Maximum y-axis value, in
yaxis_unit.- xlabelstr
x-axis label.
- ylabelstr
y-axis label.
- labelstr
Label for legend.
- alphafloat
Alpha value for the plot. Between 0 and 1.
- gridbool
Show a plot grid or not.
- figsizetuple
Figure size (see matplotlib).
- linewidthfloat
Line width, default: 2.0.
- drawstylestr
Line style, default ‘default’.
- colorstr
Line color, c also works.
- titlestr
Plot title.
- vel_framestr
The velocity frame (see VELDEF FITS Keyword).
- doppler_convention: str
The velocity convention (see VELDEF FITS Keyword).
- xaxis_unitstr or
- set_xaxis_unit(xunit: str | Quantity) None[source]#
Set the units of the abscissa axis of the plot.
- Parameters:
- xunitstr or
Quantity New units for the x-axis. It must be a valid unit for the data.
- xunitstr or
- set_yaxis_unit(yunit: str | Quantity) None[source]#
Set the units of the ordinate axis of the plot.
- Parameters:
- yunitstr or
Quantity New units for the y-axis. It must be a valid unit for the data.
- yunitstr or
- set_ydata(ydata, keep_unit=False) None[source]#
Set the ordinate data values for the plot line. That is the line that representes the underlying Spectrum.
- Parameters:
- ydataarray
Ordinate axes values to display. These can be floats or quantities.
- keep_unitbool
Only used if
ydatais aQuantity. If True, keep the units ofydata. If False, scale to the units of the current plot line.
- show_catalog_lines(rotation=0, **kwargs)[source]#
Overlay spectral lines from various catalogs on the plot, with annotations.
- Parameters:
- rotationfloat, degrees
Rotate the annotation text CCW to aid in readability. Default 0.
- **kwargs
All other kwargs get passed to
dysh.line.query_lines.
- update_limits()[source]#
Recompute the data limits based on the current artists (
relim), and then autoscale the view limits using the data limits (autoscale_view).
ScanPlot#
Plot a spectrum using matplotlib
- class dysh.plot.scanplot.ScanPlot(scanblock_or_scan, **kwargs)[source]#
Bases:
PlotBaseThe ScanPlot class is for simple plotting of a
ScanorScanBlockusing matplotlib functions. Plot attributes are modified using keywords (**kwargs) described below. SpectrumPlot will attempt to make smart default choices for the plot if no additional keywords are given.- Parameters:
- scanblock_or_scan
ScanorScanBlock The scan or scanblock to plot.
- **kwargsdict
Plot attribute keyword arguments, see below.
- scanblock_or_scan
- Attributes:
axisThe underlying
Axesobject.
Methods
fmt_scans([abbreviate])Format the scan numbers.
plot([show_header, spectral_unit])Plot the scan.
refresh()Refresh the plot
reset()Reset the plot keyword arguments to their defaults.
savefig(file[, hidebuttons])Save the plot
set_clim([vmin, vmax])Set the vmin and vmax parameters of the image.
set_cmap([cmap])Set the cmap of the image.
set_interpolation([interpolation])Set the interpolation of the image.
set_norm([norm])Set the normalization of the image colormap.
write(filename[, avechan, chan, overwrite])Write the current spectrogram as a FITS image.
has_axes
has_figure
has_selector
show
- Other Parameters:
- spectral_unitstr
The units to use on the frequency axis. Can be ‘MHz’ or ‘GHz’.
- set_clim(vmin=None, vmax=None)[source]#
Set the vmin and vmax parameters of the image.
- Parameters:
- vminfloat
The minimum value of the color scale. Default None; to autoscale.
- vmaxfloat
The maximum value of the color scale. Default None; to autoscale.
- set_cmap(cmap='inferno')[source]#
Set the cmap of the image.
- Parameters:
- cmapstr
cmap used for the color scale. Default: “inferno”.
- set_interpolation(interpolation='nearest')[source]#
Set the interpolation of the image.
- Parameters:
- interpolationstr
Interpolation method. Default: “nearest”.
- set_norm(norm=None)[source]#
Set the normalization of the image colormap. Can be any value supported by the
imshownormkeyword, e.g. ‘linear’, ‘log’ etc or a Normalize object.- Parameters:
- normstr | Normalize | None
norm used for the color scale. Default: “None”, for linear scaling.
- write(filename, avechan=1, chan=None, overwrite=False)[source]#
Write the current spectrogram as a FITS image. No WCS is maintained yet. The integrations are in the first axis and the channels in the second.
- Parameters:
- filenamestr
Filename of FITS file to be saved. No default
- avechanint
Averaging number of channels. Only supports averaging by a multiple of the number of channels. Default: 1
- chan[int,int]
If given, it will select this channel range for output. Default: all channels will be selected
- overwriteboolean
Overwrite existing file. Default: False
GUIs#
BaseGUI#
Base class for dysh GUIs
- class dysh.plot.basegui.BaseGUI[source]#
Bases:
objectMethods
connect_buttons(plotbase)Connect the GUI button(s) callbacks.
Disconnect the GUI button(s) callbacks.
Is the GUI window alive.
show()Show the GUI contents.
ShellGUI#
Graphical User Interface for dysh shell.
- class dysh.plot.shellgui.ShellGUI(plotbase)[source]#
Bases:
BaseGUITk based GUI. Used for plotting in the shell.
Methods
connect_buttons(plotbase)Connect the GUI button(s) callbacks.
Disconnect the GUI button(s) callbacks.
Is the GUI window alive.
show()Show the GUI contents.
LabGUI#
dysh lab (Jupyter) plotting interface.
- class dysh.plot.labgui.LabGUI(plotbase)[source]#
Bases:
BaseGUINBAgg based GUI. Used for jupyter.
Methods
connect_buttons(plotbase)Connect the GUI button(s) callbacks.
Disconnect the GUI button(s) callbacks.
Is the GUI window alive.
show()Show the GUI contents.
- class dysh.plot.labgui.StaticLabGUI(plotbase)[source]#
Bases:
BaseGUIAgg based GUI, i.e., no GUI at all. Used for jupyter rendering in documentation.
Methods
connect_buttons(plotbase)Connect the GUI button(s) callbacks.
disconnect_buttons()Disconnect the GUI button(s) callbacks.
is_window_alive()Is the GUI window alive.
show()Show the GUI contents.
StaticGUI#
dysh headless “GUI”.
- class dysh.plot.staticgui.StaticGUI(plotbase)[source]#
Bases:
BaseGUIAgg based GUI, i.e., no GUI at all.
Methods
connect_buttons(plotbase)Connect the GUI button(s) callbacks.
disconnect_buttons()Disconnect the GUI button(s) callbacks.
is_window_alive()Is the GUI window alive.
show()Show the GUI contents.