pub struct ScaleLinewidthContinuous { /* private fields */ }Expand description
Continuous linewidth scale — maps data values to a stroke-width range
(R’s scale_linewidth). Unlike the position (x/y) scales, with_limits
squishes out-of-range values to the nearest limit rather than filtering
them. with_transform is applied to the value and the limits before
rescaling into range, inside map /
map_to_size — it does not override
Scale::transform (that’s for pre-stat domain transforms like
scale_x_log10, which linewidth has no use for).
Implementations§
Source§impl ScaleLinewidthContinuous
impl ScaleLinewidthContinuous
pub fn new() -> Self
Sourcepub fn with_range(self, min: f64, max: f64) -> Self
pub fn with_range(self, min: f64, max: f64) -> Self
Output range in pixels. Default (1.0, 6.0).
Sourcepub fn with_limits(self, min: f64, max: f64) -> Self
pub fn with_limits(self, min: f64, max: f64) -> Self
Fix the input domain; values outside [min, max] are squished to the
nearest bound rather than filtered.
Sourcepub fn with_transform(self, transform: ScaleTransform) -> Self
pub fn with_transform(self, transform: ScaleTransform) -> Self
Transform the value and the (untransformed) with_limits domain
before rescaling into range (ggplot2’s order for a scale trans):
t = (T(v) - T(min)) / (T(max) - T(min)). Default Identity, which
matches ggplot2’s own default for scale_linewidth — a linear
rescale_pal, unlike scale_size’s default area_pal (sqrt-like,
since visual area grows with the square of a linear dimension).
Pass Sqrt to opt into that area-proportional look for linewidth
too.
Sourcepub fn with_breaks(self, breaks: Vec<f64>) -> Self
pub fn with_breaks(self, breaks: Vec<f64>) -> Self
Set custom break positions (data values where legend keys appear).
Sourcepub fn with_labels(self, labels: Vec<String>) -> Self
pub fn with_labels(self, labels: Vec<String>) -> Self
Set custom labels for breaks. Must match the number of breaks.
Sourcepub fn with_label_formatter<F>(self, f: F) -> Self
pub fn with_label_formatter<F>(self, f: F) -> Self
Set a label formatter. Accepts a plain fn (e.g. label_comma) or a
configurable formatter such as label_si() / label_number(...).
pub fn with_name(self, name: &str) -> Self
Sourcepub fn with_locale(self, locale: Locale) -> Self
pub fn with_locale(self, locale: Locale) -> Self
Render the default break labels with locale’s decimal and
thousands marks. A custom with_label_formatter
still wins.
Trait Implementations§
Source§impl Clone for ScaleLinewidthContinuous
impl Clone for ScaleLinewidthContinuous
Source§impl Default for ScaleLinewidthContinuous
impl Default for ScaleLinewidthContinuous
Source§impl Scale for ScaleLinewidthContinuous
impl Scale for ScaleLinewidthContinuous
Source§fn set_default_locale(&mut self, locale: &Locale)
fn set_default_locale(&mut self, locale: &Locale)
Locale for the
default break labels (number marks, month names, date formats), unless
the scale already has its own. Called by the plot builder when
GGPlot::locale is set. Default: ignored
(scales without numeric/date labels).Source§fn locale(&self) -> Option<&Locale>
fn locale(&self) -> Option<&Locale>
Source§fn format_value(&self, value: &Value) -> Option<String>
fn format_value(&self, value: &Value) -> Option<String>
value for a
per-mark attribute (data-fvalue/data-fx, B2-4) or a tooltip
template placeholder — e.g. a de-DE currency string, or a datetime
x’s ISO/locale date, independent of how the axis itself abbreviates
its break labels. None for a missing/non-finite value, or a scale
with nothing meaningful to format (default: every scale except
continuous position/size/linewidth and datetime/colour-continuous,
which override this).Source§fn map(&self, value: &Value) -> f64
fn map(&self, value: &Value) -> f64
Source§fn map_to_size(&self, value: &Value) -> Option<f64>
fn map_to_size(&self, value: &Value) -> Option<f64>
Source§fn map_fraction_to_size(&self, fraction: f64) -> Option<f64>
fn map_fraction_to_size(&self, fraction: f64) -> Option<f64>
[0, 1] scale fraction (as returned
alongside each label by breaks) directly to an
output size, bypassing the round trip through map — a
discrete-style legend key only has the break’s rendered label, not
its original data value, so a continuous scale can’t recover the
fraction by re-mapping the label text. Default: None.Source§fn domain(&self) -> Option<(f64, f64)>
fn domain(&self) -> Option<(f64, f64)>
Source§fn reset_training(&mut self)
fn reset_training(&mut self)
Source§fn validate(&self, warnings: &mut Vec<String>)
fn validate(&self, warnings: &mut Vec<String>)
map/map_to_size run per mark at draw time and have no such
access, so a scale-level problem must be reported here instead.
Default: no-op.Source§fn is_discrete(&self) -> bool
fn is_discrete(&self) -> bool
Source§fn map_to_color(&self, _value: &Value) -> Option<(u8, u8, u8)>
fn map_to_color(&self, _value: &Value) -> Option<(u8, u8, u8)>
Source§fn na_fill_pattern(&self) -> Option<FillPattern>
fn na_fill_pattern(&self) -> Option<FillPattern>
na
colour (Value::Na, or whatever else a scale treats that way) —
ScaleFillBinned::na_pattern (#206) is the only implementor so
far. Default None: the flat colour from
map_to_color wins, unchanged. A geom that
draws filled areas (geom_sf/geom_polygon/geom_rect/
geom_tile) checks this before falling back to map_to_color’s
na-colour branch, and the legend’s “no data” key checks it too.Source§fn is_na_break(&self, _label: &str) -> bool
fn is_na_break(&self, _label: &str) -> bool
label (a breaks label) is this scale’s
“no data” legend key, so the legend draws that one key with
na_fill_pattern instead of its ordinary
flat swatch colour. Default false (no scale without an na key
needs this). ScaleFillBinned overrides it.Source§fn map_to_shape(&self, _value: &Value) -> Option<PointShape>
fn map_to_shape(&self, _value: &Value) -> Option<PointShape>
Source§fn map_to_linetype(&self, _value: &Value) -> Option<Linetype>
fn map_to_linetype(&self, _value: &Value) -> Option<Linetype>
Source§fn map_to_alpha(&self, _value: &Value) -> Option<f64>
fn map_to_alpha(&self, _value: &Value) -> Option<f64>
Source§fn set_limits(&mut self, _min: f64, _max: f64)
fn set_limits(&mut self, _min: f64, _max: f64)
Source§fn filter_limits(&self) -> Option<(f64, f64)>
fn filter_limits(&self) -> Option<(f64, f64)>
Source§fn expanded_domain(&self) -> Option<(f64, f64)>
fn expanded_domain(&self) -> Option<(f64, f64)>
None for discrete / untrained / non-position scales.Source§fn axis_position_opposite(&self) -> bool
fn axis_position_opposite(&self) -> bool
Source§fn set_expand(&mut self, _mult: f64, _add: f64)
fn set_expand(&mut self, _mult: f64, _add: f64)
expand = c(mult, add)), applied symmetrically to both ends. Used by
CoordSf::train_scales (expand(false) passes (0.0, 0.0)) to pin
an explicit xlim/ylim to the panel exactly. Default: no-op
(discrete / non-position scales have no expansion to set).Source§fn map_fraction_to_alpha(&self, _fraction: f64) -> Option<f64>
fn map_fraction_to_alpha(&self, _fraction: f64) -> Option<f64>
[0, 1] scale fraction directly to an output
alpha (opacity), the map_fraction_to_size
equivalent for a continuous alpha scale’s discrete-style legend keys —
see that method’s doc for why the fraction, not the label, is the
input. Default: None.Auto Trait Implementations§
impl !RefUnwindSafe for ScaleLinewidthContinuous
impl !UnwindSafe for ScaleLinewidthContinuous
impl Freeze for ScaleLinewidthContinuous
impl Send for ScaleLinewidthContinuous
impl Sync for ScaleLinewidthContinuous
impl Unpin for ScaleLinewidthContinuous
impl UnsafeUnpin for ScaleLinewidthContinuous
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more