diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/visualization/projector')
10 files changed, 36 insertions, 34 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/projector/HistogramFactory.java b/src/de/lmu/ifi/dbs/elki/visualization/projector/HistogramFactory.java index 894bd264..fa4be47c 100644 --- a/src/de/lmu/ifi/dbs/elki/visualization/projector/HistogramFactory.java +++ b/src/de/lmu/ifi/dbs/elki/visualization/projector/HistogramFactory.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.projector; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -66,9 +66,9 @@ public class HistogramFactory implements ProjectorFactory { for(Relation<?> rel : rels) { if(TypeUtil.NUMBER_VECTOR_FIELD.isAssignableFromType(rel.getDataTypeInformation())) { @SuppressWarnings("unchecked") - Relation<NumberVector<?>> vrel = (Relation<NumberVector<?>>) rel; + Relation<NumberVector> vrel = (Relation<NumberVector>) rel; final int dim = RelationUtil.dimensionality(vrel); - HistogramProjector<NumberVector<?>> proj = new HistogramProjector<>(vrel, Math.min(dim, maxdim)); + HistogramProjector<NumberVector> proj = new HistogramProjector<>(vrel, Math.min(dim, maxdim)); baseResult.getHierarchy().add(vrel, proj); } } diff --git a/src/de/lmu/ifi/dbs/elki/visualization/projector/HistogramProjector.java b/src/de/lmu/ifi/dbs/elki/visualization/projector/HistogramProjector.java index 3503692c..49025ec5 100644 --- a/src/de/lmu/ifi/dbs/elki/visualization/projector/HistogramProjector.java +++ b/src/de/lmu/ifi/dbs/elki/visualization/projector/HistogramProjector.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.projector; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -50,7 +50,7 @@ import de.lmu.ifi.dbs.elki.visualization.visualizers.visunproj.LabelVisualizatio * * @param <V> Vector type */ -public class HistogramProjector<V extends NumberVector<?>> extends AbstractHierarchicalResult implements Projector { +public class HistogramProjector<V extends NumberVector> extends AbstractHierarchicalResult implements Projector { /** * Relation we project. */ diff --git a/src/de/lmu/ifi/dbs/elki/visualization/projector/OPTICSProjector.java b/src/de/lmu/ifi/dbs/elki/visualization/projector/OPTICSProjector.java index 832184f0..a3b4f4b5 100644 --- a/src/de/lmu/ifi/dbs/elki/visualization/projector/OPTICSProjector.java +++ b/src/de/lmu/ifi/dbs/elki/visualization/projector/OPTICSProjector.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.projector; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -27,10 +27,10 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import de.lmu.ifi.dbs.elki.distance.distancevalue.Distance; +import de.lmu.ifi.dbs.elki.algorithm.clustering.optics.ClusterOrderEntry; +import de.lmu.ifi.dbs.elki.algorithm.clustering.optics.ClusterOrderResult; import de.lmu.ifi.dbs.elki.result.AbstractHierarchicalResult; import de.lmu.ifi.dbs.elki.result.ResultUtil; -import de.lmu.ifi.dbs.elki.result.optics.ClusterOrderResult; import de.lmu.ifi.dbs.elki.visualization.VisualizationTask; import de.lmu.ifi.dbs.elki.visualization.VisualizerContext; import de.lmu.ifi.dbs.elki.visualization.gui.overview.PlotItem; @@ -41,24 +41,26 @@ import de.lmu.ifi.dbs.elki.visualization.projections.OPTICSProjection; * Projection for OPTICS plots. * * @author Erich Schubert + * + * @param <E> Cluster order entry type */ -public class OPTICSProjector<D extends Distance<D>> extends AbstractHierarchicalResult implements Projector { +public class OPTICSProjector<E extends ClusterOrderEntry<?>> extends AbstractHierarchicalResult implements Projector { /** * Cluster order result */ - private ClusterOrderResult<D> clusterOrder; + private ClusterOrderResult<E> clusterOrder; /** * OPTICS plot image */ - private OPTICSPlot<D> plot = null; + private OPTICSPlot<E> plot = null; /** * Constructor. * * @param co Cluster order */ - public OPTICSProjector(ClusterOrderResult<D> co) { + public OPTICSProjector(ClusterOrderResult<E> co) { super(); this.clusterOrder = co; } @@ -77,7 +79,7 @@ public class OPTICSProjector<D extends Distance<D>> extends AbstractHierarchical public Collection<PlotItem> arrange() { List<PlotItem> col = new ArrayList<>(1); List<VisualizationTask> tasks = ResultUtil.filterResults(this, VisualizationTask.class); - if (tasks.size() > 0) { + if(tasks.size() > 0) { final PlotItem it = new PlotItem(4., 1., new OPTICSProjection<>(this)); it.tasks = tasks; col.add(it); @@ -90,7 +92,7 @@ public class OPTICSProjector<D extends Distance<D>> extends AbstractHierarchical * * @return the cluster order */ - public ClusterOrderResult<D> getResult() { + public ClusterOrderResult<E> getResult() { return clusterOrder; } @@ -100,7 +102,7 @@ public class OPTICSProjector<D extends Distance<D>> extends AbstractHierarchical * @param context Context to use * @return Plot */ - public OPTICSPlot<D> getOPTICSPlot(VisualizerContext context) { + public OPTICSPlot<E> getOPTICSPlot(VisualizerContext context) { if(plot == null) { plot = OPTICSPlot.plotForClusterOrder(clusterOrder, context); } diff --git a/src/de/lmu/ifi/dbs/elki/visualization/projector/OPTICSProjectorFactory.java b/src/de/lmu/ifi/dbs/elki/visualization/projector/OPTICSProjectorFactory.java index 797c4031..155f0d07 100644 --- a/src/de/lmu/ifi/dbs/elki/visualization/projector/OPTICSProjectorFactory.java +++ b/src/de/lmu/ifi/dbs/elki/visualization/projector/OPTICSProjectorFactory.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.projector; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -25,11 +25,12 @@ package de.lmu.ifi.dbs.elki.visualization.projector; import java.util.Collection; -import de.lmu.ifi.dbs.elki.distance.distancevalue.DoubleDistance; +import de.lmu.ifi.dbs.elki.algorithm.clustering.optics.ClusterOrderEntry; +import de.lmu.ifi.dbs.elki.algorithm.clustering.optics.ClusterOrderResult; +import de.lmu.ifi.dbs.elki.algorithm.clustering.optics.DoubleDistanceClusterOrderEntry; import de.lmu.ifi.dbs.elki.result.HierarchicalResult; import de.lmu.ifi.dbs.elki.result.Result; import de.lmu.ifi.dbs.elki.result.ResultUtil; -import de.lmu.ifi.dbs.elki.result.optics.ClusterOrderResult; import de.lmu.ifi.dbs.elki.visualization.opticsplot.OPTICSPlot; /** @@ -49,11 +50,11 @@ public class OPTICSProjectorFactory implements ProjectorFactory { @Override public void processNewResult(HierarchicalResult baseResult, Result newResult) { - Collection<ClusterOrderResult<?>> cos = ResultUtil.filterResults(newResult, ClusterOrderResult.class); - for(ClusterOrderResult<?> co : cos) { + Collection<ClusterOrderResult<? extends ClusterOrderEntry<?>>> cos = ResultUtil.filterResults(newResult, ClusterOrderResult.class); + for(ClusterOrderResult<? extends ClusterOrderEntry<?>> co : cos) { if(OPTICSPlot.canPlot(co)) { @SuppressWarnings("unchecked") - OPTICSProjector<?> proj = new OPTICSProjector<>((ClusterOrderResult<DoubleDistance>) co); + OPTICSProjector<?> proj = new OPTICSProjector<>((ClusterOrderResult<DoubleDistanceClusterOrderEntry>) co); baseResult.getHierarchy().add(co, proj); } } diff --git a/src/de/lmu/ifi/dbs/elki/visualization/projector/ParallelPlotFactory.java b/src/de/lmu/ifi/dbs/elki/visualization/projector/ParallelPlotFactory.java index e744ae5b..07a05ff0 100644 --- a/src/de/lmu/ifi/dbs/elki/visualization/projector/ParallelPlotFactory.java +++ b/src/de/lmu/ifi/dbs/elki/visualization/projector/ParallelPlotFactory.java @@ -54,8 +54,8 @@ public class ParallelPlotFactory implements ProjectorFactory { // TODO: multi-relational parallel plots
if(TypeUtil.NUMBER_VECTOR_FIELD.isAssignableFromType(rel.getDataTypeInformation())) {
@SuppressWarnings("unchecked")
- Relation<NumberVector<?>> vrel = (Relation<NumberVector<?>>) rel;
- ParallelPlotProjector<NumberVector<?>> proj = new ParallelPlotProjector<>(vrel);
+ Relation<NumberVector> vrel = (Relation<NumberVector>) rel;
+ ParallelPlotProjector<NumberVector> proj = new ParallelPlotProjector<>(vrel);
baseResult.getHierarchy().add(vrel, proj);
}
}
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/projector/ParallelPlotProjector.java b/src/de/lmu/ifi/dbs/elki/visualization/projector/ParallelPlotProjector.java index bc981924..31a86534 100644 --- a/src/de/lmu/ifi/dbs/elki/visualization/projector/ParallelPlotProjector.java +++ b/src/de/lmu/ifi/dbs/elki/visualization/projector/ParallelPlotProjector.java @@ -47,7 +47,7 @@ import de.lmu.ifi.dbs.elki.visualization.projections.SimpleParallel; * @param <V> Vector type
*/
// TODO: support categorical features, and multiple relations too
-public class ParallelPlotProjector<V extends NumberVector<?>> extends AbstractHierarchicalResult implements Projector {
+public class ParallelPlotProjector<V extends NumberVector> extends AbstractHierarchicalResult implements Projector {
/**
* Relation we project.
*/
@@ -71,7 +71,7 @@ public class ParallelPlotProjector<V extends NumberVector<?>> extends AbstractHi ScalesResult scales = ResultUtil.getScalesResult(rel);
ProjectionParallel proj = new SimpleParallel(scales.getScales());
- final double width = Math.ceil(Math.log(scales.getScales().length) / MathUtil.LOG2);
+ final double width = Math.ceil(MathUtil.log2(scales.getScales().length));
final PlotItem it = new PlotItem(width, 1., proj);
it.tasks = tasks;
col.add(it);
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/projector/Projector.java b/src/de/lmu/ifi/dbs/elki/visualization/projector/Projector.java index 8febb94b..a323b914 100644 --- a/src/de/lmu/ifi/dbs/elki/visualization/projector/Projector.java +++ b/src/de/lmu/ifi/dbs/elki/visualization/projector/Projector.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.projector; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team diff --git a/src/de/lmu/ifi/dbs/elki/visualization/projector/ProjectorFactory.java b/src/de/lmu/ifi/dbs/elki/visualization/projector/ProjectorFactory.java index 25a9ddc1..b5424442 100644 --- a/src/de/lmu/ifi/dbs/elki/visualization/projector/ProjectorFactory.java +++ b/src/de/lmu/ifi/dbs/elki/visualization/projector/ProjectorFactory.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.projector; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -26,7 +26,6 @@ package de.lmu.ifi.dbs.elki.visualization.projector; import de.lmu.ifi.dbs.elki.result.HierarchicalResult; import de.lmu.ifi.dbs.elki.result.Result; import de.lmu.ifi.dbs.elki.result.ResultProcessor; -import de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable; /** * A projector is responsible for adding projections to the visualization by @@ -36,7 +35,7 @@ import de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable; * * @apiviz.has Projector */ -public interface ProjectorFactory extends ResultProcessor, Parameterizable { +public interface ProjectorFactory extends ResultProcessor { /** * Add projections for the given result (tree) to the result tree. * diff --git a/src/de/lmu/ifi/dbs/elki/visualization/projector/ScatterPlotFactory.java b/src/de/lmu/ifi/dbs/elki/visualization/projector/ScatterPlotFactory.java index f1d61698..de41b85a 100644 --- a/src/de/lmu/ifi/dbs/elki/visualization/projector/ScatterPlotFactory.java +++ b/src/de/lmu/ifi/dbs/elki/visualization/projector/ScatterPlotFactory.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.projector; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -74,9 +74,9 @@ public class ScatterPlotFactory implements ProjectorFactory { for(Relation<?> rel : rels) { if(TypeUtil.NUMBER_VECTOR_FIELD.isAssignableFromType(rel.getDataTypeInformation())) { @SuppressWarnings("unchecked") - Relation<NumberVector<?>> vrel = (Relation<NumberVector<?>>) rel; + Relation<NumberVector> vrel = (Relation<NumberVector>) rel; final int dim = RelationUtil.dimensionality(vrel); - ScatterPlotProjector<NumberVector<?>> proj = new ScatterPlotProjector<>(vrel, Math.min(maxdim, dim)); + ScatterPlotProjector<NumberVector> proj = new ScatterPlotProjector<>(vrel, Math.min(maxdim, dim)); baseResult.getHierarchy().add(vrel, proj); } } diff --git a/src/de/lmu/ifi/dbs/elki/visualization/projector/ScatterPlotProjector.java b/src/de/lmu/ifi/dbs/elki/visualization/projector/ScatterPlotProjector.java index 84035058..9c6c2bbe 100644 --- a/src/de/lmu/ifi/dbs/elki/visualization/projector/ScatterPlotProjector.java +++ b/src/de/lmu/ifi/dbs/elki/visualization/projector/ScatterPlotProjector.java @@ -4,7 +4,7 @@ package de.lmu.ifi.dbs.elki.visualization.projector; This file is part of ELKI: Environment for Developing KDD-Applications Supported by Index-Structures - Copyright (C) 2013 + Copyright (C) 2014 Ludwig-Maximilians-Universität München Lehr- und Forschungseinheit für Datenbanksysteme ELKI Development Team @@ -52,7 +52,7 @@ import de.lmu.ifi.dbs.elki.visualization.visualizers.visunproj.LabelVisualizatio * * @param <V> Vector type */ -public class ScatterPlotProjector<V extends NumberVector<?>> extends AbstractHierarchicalResult implements Projector { +public class ScatterPlotProjector<V extends NumberVector> extends AbstractHierarchicalResult implements Projector { /** * Relation we project. */ |