From 95cb03bfdc0c5b1370896384d1519bca59cabf5b Mon Sep 17 00:00:00 2001 From: Guillaume Charifi-Hoareau Date: Wed, 12 Feb 2025 18:38:36 +0100 Subject: [PATCH] Add ReversibleRanged support for LogCoord. --- .../src/coord/ranged1d/combinators/logarithmic.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/plotters/src/coord/ranged1d/combinators/logarithmic.rs b/plotters/src/coord/ranged1d/combinators/logarithmic.rs index af9e1398..56f54f05 100644 --- a/plotters/src/coord/ranged1d/combinators/logarithmic.rs +++ b/plotters/src/coord/ranged1d/combinators/logarithmic.rs @@ -1,5 +1,7 @@ use crate::coord::ranged1d::types::RangedCoordf64; -use crate::coord::ranged1d::{AsRangedCoord, DefaultFormatting, KeyPointHint, Ranged}; +use crate::coord::ranged1d::{ + AsRangedCoord, DefaultFormatting, KeyPointHint, Ranged, ReversibleRanged, +}; use std::marker::PhantomData; use std::ops::Range; @@ -78,6 +80,15 @@ impl IntoLogRange for Range { } } +impl ReversibleRanged for LogCoord { + fn unmap(&self, input: i32, limit: (i32, i32)) -> Option { + self.linear.unmap(input, limit).map(|value_ln| { + let fv = value_ln.exp(); + self.f64_to_value(fv) + }) + } +} + /// The logarithmic coordinate decorator. /// This decorator is used to make the axis rendered as logarithmically. #[derive(Clone)]