summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/visualization/visualizers/histogram/ColoredHistogramVisualizer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/visualization/visualizers/histogram/ColoredHistogramVisualizer.java')
-rw-r--r--src/de/lmu/ifi/dbs/elki/visualization/visualizers/histogram/ColoredHistogramVisualizer.java30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/visualization/visualizers/histogram/ColoredHistogramVisualizer.java b/src/de/lmu/ifi/dbs/elki/visualization/visualizers/histogram/ColoredHistogramVisualizer.java
index d518d0cf..e300a3c4 100644
--- a/src/de/lmu/ifi/dbs/elki/visualization/visualizers/histogram/ColoredHistogramVisualizer.java
+++ b/src/de/lmu/ifi/dbs/elki/visualization/visualizers/histogram/ColoredHistogramVisualizer.java
@@ -23,13 +23,13 @@ package de.lmu.ifi.dbs.elki.visualization.visualizers.histogram;
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-import java.util.Iterator;
+import java.util.Collection;
import org.apache.batik.util.SVGConstants;
import org.w3c.dom.Element;
import de.lmu.ifi.dbs.elki.data.NumberVector;
-import de.lmu.ifi.dbs.elki.database.ids.DBID;
+import de.lmu.ifi.dbs.elki.database.ids.DBIDIter;
import de.lmu.ifi.dbs.elki.database.relation.Relation;
import de.lmu.ifi.dbs.elki.logging.LoggingUtil;
import de.lmu.ifi.dbs.elki.math.DoubleMinMax;
@@ -39,9 +39,9 @@ import de.lmu.ifi.dbs.elki.math.scales.LinearScale;
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.SamplingResult;
import de.lmu.ifi.dbs.elki.utilities.DatabaseUtil;
import de.lmu.ifi.dbs.elki.utilities.exceptions.ObjectNotFoundException;
-import de.lmu.ifi.dbs.elki.utilities.iterator.IterableIterator;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizer;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.OptionID;
import de.lmu.ifi.dbs.elki.utilities.optionhandling.constraints.GreaterEqualConstraint;
@@ -111,6 +111,11 @@ public class ColoredHistogramVisualizer<NV extends NumberVector<NV, ?>> extends
private StyleResult style;
/**
+ * Sampling result
+ */
+ private SamplingResult sample;
+
+ /**
* Constructor.
*
* @param task Visualization task
@@ -123,6 +128,7 @@ public class ColoredHistogramVisualizer<NV extends NumberVector<NV, ?>> extends
this.bins = bins;
this.relation = task.getRelation();
this.style = task.getResult();
+ this.sample = ResultUtil.getSamplingResult(relation);
context.addResultListener(this);
}
@@ -180,10 +186,12 @@ public class ColoredHistogramVisualizer<NV extends NumberVector<NV, ?>> extends
double[] inc = new double[cols];
inc[0] = frac;
inc[snum + 1] = frac;
- for(Iterator<DBID> iter = cspol.iterateClass(snum + off); iter.hasNext();) {
- DBID id = iter.next();
+ for(DBIDIter iter = cspol.iterateClass(snum + off); iter.valid(); iter.advance()) {
+ if(!sample.getSample().contains(iter)) {
+ continue; // TODO: can we test more efficiently than this?
+ }
try {
- double pos = proj.fastProjectDataToRenderSpace(relation.get(id)) / Projection.SCALE;
+ double pos = proj.fastProjectDataToRenderSpace(relation.get(iter)) / Projection.SCALE;
histogram.aggregate(pos, inc);
}
catch(ObjectNotFoundException e) {
@@ -196,8 +204,8 @@ public class ColoredHistogramVisualizer<NV extends NumberVector<NV, ?>> extends
// Actual data distribution.
double[] inc = new double[cols];
inc[0] = frac;
- for(DBID id : relation.iterDBIDs()) {
- double pos = proj.fastProjectDataToRenderSpace(relation.get(id)) / Projection.SCALE;
+ for(DBIDIter iditer = relation.iterDBIDs(); iditer.valid(); iditer.advance()) {
+ double pos = proj.fastProjectDataToRenderSpace(relation.get(iditer)) / Projection.SCALE;
histogram.aggregate(pos, inc);
}
}
@@ -332,7 +340,7 @@ public class ColoredHistogramVisualizer<NV extends NumberVector<NV, ?>> extends
* @author Erich Schubert
*
* @apiviz.stereotype factory
- * @apiviz.uses P1DHistogramVisualizer oneway - - «create»
+ * @apiviz.uses ColoredHistogramVisualizer oneway - - «create»
*
* @param <NV> Number vector type
*/
@@ -391,9 +399,9 @@ public class ColoredHistogramVisualizer<NV extends NumberVector<NV, ?>> extends
@Override
public void processNewResult(HierarchicalResult baseResult, Result result) {
// Find a style result to visualize:
- IterableIterator<StyleResult> styleres = ResultUtil.filteredResults(result, StyleResult.class);
+ Collection<StyleResult> styleres = ResultUtil.filterResults(result, StyleResult.class);
for(StyleResult c : styleres) {
- IterableIterator<HistogramProjector<?>> ps = ResultUtil.filteredResults(baseResult, HistogramProjector.class);
+ Collection<HistogramProjector<?>> ps = ResultUtil.filterResults(baseResult, HistogramProjector.class);
for(HistogramProjector<?> p : ps) {
// register self
final VisualizationTask task = new VisualizationTask(CNAME, c, p.getRelation(), this);