A RAxisGrow that has a label assigned to each bin and a bin width of 1. 
While filling still works through coordinates (i.e. arrays of doubles), RAxisLabels allows to convert a string to a bin number or the bin's coordinate center. The number of labels and the number of bins reported by RAxisGrow might differ: the RAxisGrow will only grow when seeing a Fill(), while the RAxisLabels will add a new label whenever GetBinCenter() is called.
Implementation details: Filling happens often; GetBinCenter() needs to be fast. Thus the unordered_map. The painter needs the reverse: it wants the label for bin 0, bin 1 etc. The axis should only store the bin labels once; referencing them is (due to re-allocation, hashing etc) non-trivial. So instead, build a vector<string_view> for the few times the axis needs to be painted. 
Definition at line 736 of file RAxis.hxx.
 | 
|   | RAxisLabels (const std::vector< std::string > &labels) | 
|   | Construct a RAxisLables from a vector of strings.  More...
  | 
|   | 
|   | RAxisLabels (const std::vector< std::string_view > &labels) | 
|   | Construct a RAxisLables from a vector of string_views.  More...
  | 
|   | 
|   | RAxisLabels (std::string_view title, const std::vector< std::string > &labels) | 
|   | Construct a RAxisLables from a vector of strings, with title.  More...
  | 
|   | 
|   | RAxisLabels (std::string_view title, const std::vector< std::string_view > &labels) | 
|   | Construct a RAxisLables from a vector of string_views, with title.  More...
  | 
|   | 
| double  | GetBinCenter (const std::string &label) | 
|   | Get the center of the bin with label.  More...
  | 
|   | 
| int  | GetBinIndex (const std::string &label) | 
|   | Get the bin index with label.  More...
  | 
|   | 
| std::vector< std::string_view >  | GetBinLabels () const | 
|   | Build a vector of labels. The position in the vector defines the label's bin.  More...
  | 
|   | 
|   | RAxisGrow (int nbins, double low, double high) noexcept | 
|   | Initialize a RAxisGrow.  More...
  | 
|   | 
|   | RAxisGrow (std::string_view title, int nbins, double low, double high) noexcept | 
|   | Initialize a RAxisGrow.  More...
  | 
|   | 
| bool  | CanGrow () const | 
|   | This axis kind can increase its range.  More...
  | 
|   | 
| int  | Grow (int toBin) | 
|   | Grow this axis to make the "virtual bin" toBin in-range.  More...
  | 
|   | 
|   | operator RAxisConfig () const | 
|   | Convert to RAxisConfig.  More...
  | 
|   | 
|   | RAxisEquidistant ()=default | 
|   | 
|   | RAxisEquidistant (int nbinsNoOver, double low, double high) noexcept | 
|   | Initialize a RAxisEquidistant.  More...
  | 
|   | 
|   | RAxisEquidistant (std::string_view title, int nbinsNoOver, double low, double high) noexcept | 
|   | Initialize a RAxisEquidistant.  More...
  | 
|   | 
| int  | FindBin (double x) const noexcept | 
|   | Find the bin index for the given coordinate.  More...
  | 
|   | 
| double  | GetBinCenter (int bin) const noexcept | 
|   | Get the bin center for the given bin index.  More...
  | 
|   | 
| double  | GetBinFrom (int bin) const noexcept | 
|   | Get the low bin border for the given bin index.  More...
  | 
|   | 
| int  | GetBinIndexForLowEdge (double x) const noexcept | 
|   | If the coordinate x is a bin low edge (within 1E-6 of the coordinate), return the bin for which this is a low edge.  More...
  | 
|   | 
| double  | GetBinTo (int bin) const noexcept | 
|   | Get the high bin border for the given bin index.  More...
  | 
|   | 
| double  | GetBinWidth () const noexcept | 
|   | Get the width of the bins.  More...
  | 
|   | 
| double  | GetInverseBinWidth () const noexcept | 
|   | Get the inverse of the width of the bins.  More...
  | 
|   | 
| double  | GetMaximum () const noexcept | 
|   | Get the high end of the axis range.  More...
  | 
|   | 
| double  | GetMinimum () const noexcept | 
|   | Get the low end of the axis range.  More...
  | 
|   | 
|   | operator RAxisConfig () const | 
|   | Convert to RAxisConfig.  More...
  | 
|   | 
|   | RAxisBase (int nbinsNoOver, bool canGrow) noexcept | 
|   | Construct a RAxisBase.  More...
  | 
|   | 
|   | RAxisBase (std::string_view title, int nbinsNoOver, bool canGrow) noexcept | 
|   | Construct a RAxisBase.  More...
  | 
|   | 
| int  | GetNBins () const noexcept | 
|   | Get the number of bins, including under- and overflow.  More...
  | 
|   | 
| int  | GetNBinsNoOver () const noexcept | 
|   | Get the number of bins, excluding under- and overflow.  More...
  | 
|   | 
| int  | GetNOverflowBins () const noexcept | 
|   | Get the number of over- and underflow bins: 0 for growable axes, 2 otherwise.  More...
  | 
|   | 
| int  | GetOverflowBin () const noexcept | 
|   | Get the bin index for the underflow bin (or the next bin outside range if CanGrow()).  More...
  | 
|   | 
| const std::string &  | GetTitle () const | 
|   | 
| int  | GetUnderflowBin () const noexcept | 
|   | Get the bin index for the underflow bin.  More...
  | 
|   | 
| bool  | IsOverflowBin (int bin) const noexcept | 
|   | Whether the bin index is referencing a bin higher than the axis range.  More...
  | 
|   | 
| bool  | IsUnderflowBin (int bin) const noexcept | 
|   | Whether the bin index is referencing a bin lower than the axis range.  More...
  | 
|   | 
| const_iterator  | begin () const noexcept | 
|   | Get a const_iterator pointing to the first non-underflow bin.  More...
  | 
|   | 
| const_iterator  | begin_with_underflow () const noexcept | 
|   | Get a const_iterator pointing the underflow bin.  More...
  | 
|   | 
| const_iterator  | end () const noexcept | 
|   | Get a const_iterator pointing right beyond the last non-overflow bin (i.e.  More...
  | 
|   | 
| const_iterator  | end_with_overflow () const noexcept | 
|   | Get a const_iterator pointing right beyond the overflow bin.  More...
  | 
|   | 
 | 
| enum class   | EFindStatus { kCanGrow
, kValid
 } | 
|   | Status of FindBin(x)  More...
  | 
|   | 
| static bool  | CanGrow () noexcept | 
|   | This axis cannot grow.  More...
  | 
|   | 
| static constexpr const int  | kIgnoreBin = -1 | 
|   | FindBin() returns this bin to signal that the bin number is invalid.  More...
  | 
|   | 
| static constexpr const int  | kNOverflowBins [4] = {0, 1, 1, 2} | 
|   | Extra bins for each EAxisOverflow value.  More...
  | 
|   | 
|   | RAxisEquidistant (int nbinsNoOver, double low, double high, bool canGrow) noexcept | 
|   | Initialize a RAxisEquidistant.  More...
  | 
|   | 
|   | RAxisEquidistant (std::string_view title, int nbinsNoOver, double low, double high, bool canGrow) noexcept | 
|   | Initialize a RAxisEquidistant.  More...
  | 
|   | 
|   | RAxisBase ()=default | 
|   | Default construct a RAxisBase (for use by derived classes for I/O)  More...
  | 
|   | 
| int  | AdjustOverflowBinNumber (double rawbin) const | 
|   | Given rawbin (<0 for underflow, >= GetNBinsNoOver() for overflow), determine the actual bin number taking into account how over/underflow should be handled.  More...
  | 
|   | 
|   | RAxisBase (const RAxisBase &)=default | 
|   | 
|   | RAxisBase (RAxisBase &&)=default | 
|   | 
| RAxisBase &  | operator= (const RAxisBase &)=default | 
|   | 
| RAxisBase &  | operator= (RAxisBase &&)=default | 
|   | 
| static double  | GetInvBinWidth (int nbinsNoOver, double lowOrHigh, double highOrLow) | 
|   | Determine the inverse bin width.  More...
  | 
|   | 
| double  | fInvBinWidth = 0. | 
|   | The inverse of the bin width.  More...
  | 
|   | 
| double  | fLow = 0. | 
|   | The lower limit of the axis.  More...
  | 
|   |