tenflowers_dataset/visualization/
extensions.rs1use crate::{transforms::Transform, Dataset};
7use tenflowers_core::Result;
8
9use super::types::*;
10use super::visualizer::DatasetVisualizer;
11
12pub trait DatasetVisualizationExt<T>: Dataset<T> + Sized {
14 fn sample_preview(&self, num_samples: usize) -> Result<SamplePreview>
16 where
17 T: Clone + Default + scirs2_core::numeric::Zero + Send + Sync + 'static,
18 {
19 DatasetVisualizer::sample_preview(self, num_samples)
20 }
21
22 fn feature_distribution(&self, max_samples: Option<usize>) -> Result<DistributionInfo<T>>
24 where
25 T: Clone
26 + Default
27 + scirs2_core::numeric::Zero
28 + Send
29 + Sync
30 + 'static
31 + scirs2_core::numeric::Float,
32 {
33 DatasetVisualizer::feature_distribution(self, max_samples)
34 }
35
36 fn class_distribution(&self) -> Result<ClassDistribution>
38 where
39 T: Clone + Default + scirs2_core::numeric::Zero + Send + Sync + 'static,
40 {
41 DatasetVisualizer::class_distribution(self)
42 }
43
44 fn feature_histogram(&self, feature_index: usize, bins: usize) -> Result<FeatureHistogram<T>>
46 where
47 T: Clone
48 + Default
49 + scirs2_core::numeric::Zero
50 + Send
51 + Sync
52 + 'static
53 + scirs2_core::numeric::Float
54 + PartialOrd,
55 {
56 DatasetVisualizer::feature_histogram(self, feature_index, bins)
57 }
58
59 fn analyze_augmentation_effects<Tr>(
61 &self,
62 transform: &Tr,
63 num_samples: usize,
64 ) -> Result<AugmentationEffects<T>>
65 where
66 T: Clone
67 + Default
68 + scirs2_core::numeric::Zero
69 + Send
70 + Sync
71 + 'static
72 + scirs2_core::numeric::Float
73 + PartialOrd,
74 Tr: Transform<T>,
75 {
76 DatasetVisualizer::analyze_augmentation_effects(self, transform, num_samples)
77 }
78}
79
80impl<T, D: Dataset<T> + Sized> DatasetVisualizationExt<T> for D {}