plot_distribution#
- gammapy.visualization.plot_distribution(wcs_map, ax=None, ncols=3, func=None, kwargs_hist=None, kwargs_axes=None, kwargs_fit=None)[source]#
Plot the 1D distribution of data inside a map as an histogram. If the dimension of the map is smaller than 2, a unique plot will be displayed. Otherwise, if the dimension is 3 or greater, a grid of plot will be displayed.
- Parameters:
- wcs_map
WcsNDMap
A map that contains data to be plotted.
- ax
Axes
or list ofAxes
Axis object to plot on. If a list of Axis is provided it has to be the same length as the length of _map.data.
- ncolsint
Number of columns to plot if a “plot grid” was to be done.
- funcfunction object or str
The function used to fit a map data histogram or “norm”. Default is None. If None, no fit will be performed. If “norm” is given,
scipy.stats.norm.pdf
will be passed toscipy.optimize.curve_fit
.- kwargs_histdict
Keyword arguments to pass to
matplotlib.pyplot.hist
.- kwargs_axesdict
Keyword arguments to pass to
matplotlib.axes.Axes
.- kwargs_fitdict
Keyword arguments to pass to
scipy.optimize.curve_fit
- wcs_map
- Returns:
- axes
ndarray
ofAxes
Array of Axes.
- result_listlist of dict
List of dictionnary that contains the results of
scipy.optimize.curve_fit
. The number of elements in the list correspond to the dimension of the non-spatial axis of the map. The dictionnary contains:axis_edges
: the edges of the non-spatial axis bin usedparam
: the best-fit parameters of the input functionfunc
covar
: the covariance matrix for the fitted parametersparam
info_dict
: theinfodict
return ofscipy.optimize.curve_fit
- axes
Examples
>>> from gammapy.datasets import MapDataset >>> from gammapy.estimators import TSMapEstimator >>> from scipy.stats import norm >>> from gammapy.visualization import plot_distribution >>> dataset = MapDataset.read("$GAMMAPY_DATA/cta-1dc-gc/cta-1dc-gc.fits.gz") >>> tsmap_est = TSMapEstimator().run(dataset) >>> axs, res = plot_distribution(tsmap_est.sqrt_ts, func="norm", kwargs_hist={'bins': 75, 'range': (-10, 10), 'density': True}) >>> # Equivalently, one can do the following: >>> func = lambda x, mu, sig : norm.pdf(x, loc=mu, scale=sig) >>> axs, res = plot_distribution(tsmap_est.sqrt_ts, func=func, kwargs_hist={'bins': 75, 'range': (-10, 10), 'density': True})