plotnine.scales.scale.scale_continuous¶
- class plotnine.scales.scale.scale_continuous(**kwargs)[source]¶
Base class for all continuous scales
- Parameters:
- breaksarray_like or
callable()
, optional Major break points. Alternatively, a callable that takes a tuple of limits and returns a list of breaks. Default is to automatically calculate the breaks.
- expand
tuple
, optional Multiplicative and additive expansion constants that determine how the scale is expanded. If specified must be of length 2 or 4. Specifically the values are in this order:
(mul, add) (mul_low, add_low, mul_high, add_high)
For example,
(0, 0)
- Do not expand.(0, 1)
- Expand lower and upper limits by 1 unit.(1, 0)
- Expand lower and upper limits by 100%.(0, 0, 0, 0)
- Do not expand, as(0, 0)
.(0, 0, 0, 1)
- Expand upper limit by 1 unit.(0, 1, 0.1, 0)
- Expand lower limit by 1 unit and upper limit by 10%.(0, 0, 0.1, 2)
- Expand upper limit by 10% plus 2 units.
If not specified, suitable defaults are chosen.
- name
str
, optional Name used as the label of the scale. This is what shows up as the axis label or legend title. Suitable defaults are chosen depending on the type of scale.
- labels
list
orcallable()
, optional List of
str
. Labels at the breaks. Alternatively, a callable that takes an array_like of break points as input and returns a list of strings.- limitsarray_like, optional
Limits of the scale. Most commonly, these are the min & max values for the scales. For scales that deal with categoricals, these may be a subset or superset of the categories.
- na_valuescalar
What value to assign to missing values. Default is to assign
np.nan
.- palette
callable()
, optional Function to map data points onto the scale. Most scales define their own palettes.
- aesthetics
list
, optional list of
str
. Aesthetics covered by the scale. These are defined by each scale and the user should probably not change them. Have fun.- trans
str
|function
Name of a trans function or a trans function. See
mizani.transforms
for possible options.- oob
function
Function to deal with out of bounds (limits) data points. Default is to turn them into
np.nan
, which then get dropped.- minor_breakslist-like or
int
orcallable()
orNone
If a list-like, it is the minor breaks points. If an integer, it is the number of minor breaks between any set of major breaks. If a function, it should have the signature
func(limits)
and return a list-like of consisting of the minor break points. IfNone
, no minor breaks are calculated. The default is to automatically calculate them.- rescaler
function
, optional Function to rescale data points so that they can be handled by the palette. Default is to rescale them onto the [0, 1] range. Scales that inherit from this class may have another default.
- breaksarray_like or
Notes
If using the class directly all arguments must be keyword arguments.
- static rescaler(x, to=(0, 1), _from=None)¶
Rescale numeric vector to have specified minimum and maximum.
- Parameters:
- xarray_like |
numeric
1D vector of values to manipulate.
- to
tuple
output range (numeric vector of length two)
- _from
tuple
input range (numeric vector of length two). If not given, is calculated from the range of x
- xarray_like |
- Returns:
- outarray_like
Rescaled values
Examples
>>> x = [0, 2, 4, 6, 8, 10] >>> rescale(x) array([0. , 0.2, 0.4, 0.6, 0.8, 1. ]) >>> rescale(x, to=(0, 2)) array([0. , 0.4, 0.8, 1.2, 1.6, 2. ]) >>> rescale(x, to=(0, 2), _from=(0, 20)) array([0. , 0.2, 0.4, 0.6, 0.8, 1. ])
- static oob(x, range=(0, 1), only_finite=True)¶
Convert any values outside of range to a NULL type object.
- Parameters:
- xarray_like
Values to manipulate
- range
tuple
(min, max) giving desired output range
- only_finitebool
If True (the default), will only modify finite values.
- Returns:
- xarray_like
Censored array
Notes
All values in
x
should be of the same type.only_finite
parameter is not considered for Datetime and Timedelta types.The NULL type object depends on the type of values in x.
float
-float('nan')
int
-float('nan')
datetime.datetime
:np.datetime64(NaT)
datetime.timedelta
:np.timedelta64(NaT)
Examples
>>> a = [1, 2, np.inf, 3, 4, -np.inf, 5] >>> censor(a, (0, 10)) [1, 2, inf, 3, 4, -inf, 5] >>> censor(a, (0, 10), False) [1, 2, nan, 3, 4, nan, 5] >>> censor(a, (2, 4)) [nan, 2, inf, 3, 4, -inf, nan]
- dimension(expand=(0, 0, 0, 0), limits=None)[source]¶
Get the phyical size of the scale
Unlike limits, this always returns a numeric vector of length 2
- expand_limits(limits: ScaleContinuousLimits, expand: TupleFloat2 | TupleFloat4, coord_limits: CoordRange | None, trans: Trans) range_view [source]¶
Calculate the final range in coordinate space
- view(limits: CoordRange | None = None, range: CoordRange | None = None) scale_view [source]¶
Information about the trained scale
- default_expansion(mult=0.05, add=0, expand=True)[source]¶
Get the default expansion for continuous scale
- map(x: AnyArrayLike, limits: ScaleContinuousLimits | None = None) AnyArrayLike [source]¶
Map every element of x
The palette should do the real work, this should make sure that sensible values are sent and return from the palette.
- get_breaks(limits: ScaleContinuousLimits | None = None) ScaleContinuousBreaks [source]¶
Generate breaks for the axis or legend
- Parameters:
- limitslist-like |
None
If None the self.limits are used They are expected to be in transformed space.
- limitslist-like |
- Returns:
- outarray-like
Notes
Breaks are calculated in data space and returned in transformed space since all data is plotted in transformed space.
- get_bounded_breaks(limits: ScaleContinuousLimits | None = None) ScaleContinuousBreaks [source]¶
Return Breaks that are within limits