242 |
28 Feb 07 |
enell |
1 |
/* |
242 |
28 Feb 07 |
enell |
$Id$ |
242 |
28 Feb 07 |
enell |
3 |
|
242 |
28 Feb 07 |
enell |
Copyright (C) 2006 Johan Enell |
242 |
28 Feb 07 |
enell |
5 |
|
242 |
28 Feb 07 |
enell |
This file is part of BASE - BioArray Software Environment. |
242 |
28 Feb 07 |
enell |
Available at http://base.thep.lu.se/ |
242 |
28 Feb 07 |
enell |
8 |
|
242 |
28 Feb 07 |
enell |
BASE is free software; you can redistribute it and/or modify it |
242 |
28 Feb 07 |
enell |
under the terms of the GNU General Public License as published by |
242 |
28 Feb 07 |
enell |
the Free Software Foundation; either version 2 of the License, or |
242 |
28 Feb 07 |
enell |
(at your option) any later version. |
242 |
28 Feb 07 |
enell |
13 |
|
242 |
28 Feb 07 |
enell |
BASE is distributed in the hope that it will be useful, but |
242 |
28 Feb 07 |
enell |
WITHOUT ANY WARRANTY; without even the implied warranty of |
242 |
28 Feb 07 |
enell |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
242 |
28 Feb 07 |
enell |
General Public License for more details. |
242 |
28 Feb 07 |
enell |
18 |
|
242 |
28 Feb 07 |
enell |
You should have received a copy of the GNU General Public License |
242 |
28 Feb 07 |
enell |
along with this program; if not, write to the Free Software |
242 |
28 Feb 07 |
enell |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
242 |
28 Feb 07 |
enell |
02111-1307, USA. |
242 |
28 Feb 07 |
enell |
23 |
*/ |
242 |
28 Feb 07 |
enell |
24 |
package oneclass.plot; |
242 |
28 Feb 07 |
enell |
25 |
|
242 |
28 Feb 07 |
enell |
26 |
import org.jfree.data.statistics.SimpleHistogramBin; |
242 |
28 Feb 07 |
enell |
27 |
import org.jfree.data.statistics.SimpleHistogramDataset; |
242 |
28 Feb 07 |
enell |
28 |
|
242 |
28 Feb 07 |
enell |
29 |
public class HistogramDataset extends SimpleHistogramDataset |
242 |
28 Feb 07 |
enell |
30 |
{ |
242 |
28 Feb 07 |
enell |
31 |
|
242 |
28 Feb 07 |
enell |
32 |
private double binSize; |
242 |
28 Feb 07 |
enell |
33 |
|
242 |
28 Feb 07 |
enell |
34 |
public HistogramDataset(Comparable key, double binSize) |
242 |
28 Feb 07 |
enell |
35 |
{ |
242 |
28 Feb 07 |
enell |
36 |
super(key); |
242 |
28 Feb 07 |
enell |
37 |
this.binSize = binSize; |
242 |
28 Feb 07 |
enell |
38 |
} |
242 |
28 Feb 07 |
enell |
39 |
|
242 |
28 Feb 07 |
enell |
40 |
@Override |
242 |
28 Feb 07 |
enell |
41 |
public void addObservation(double value, boolean notify) |
242 |
28 Feb 07 |
enell |
42 |
{ |
242 |
28 Feb 07 |
enell |
43 |
try |
242 |
28 Feb 07 |
enell |
44 |
{ |
242 |
28 Feb 07 |
enell |
45 |
super.addObservation(value, notify); |
242 |
28 Feb 07 |
enell |
46 |
} |
242 |
28 Feb 07 |
enell |
47 |
catch (RuntimeException e) |
242 |
28 Feb 07 |
enell |
48 |
{ |
242 |
28 Feb 07 |
enell |
49 |
newBin(value); |
242 |
28 Feb 07 |
enell |
50 |
super.addObservation(value, notify); |
242 |
28 Feb 07 |
enell |
51 |
} |
242 |
28 Feb 07 |
enell |
52 |
} |
242 |
28 Feb 07 |
enell |
53 |
|
242 |
28 Feb 07 |
enell |
54 |
private void newBin(double value) |
242 |
28 Feb 07 |
enell |
55 |
{ |
242 |
28 Feb 07 |
enell |
56 |
double precision = 1000000; |
242 |
28 Feb 07 |
enell |
57 |
int low = (int)(Math.floor(value/binSize) * binSize * precision); |
242 |
28 Feb 07 |
enell |
58 |
int high = low + (int)(binSize * precision); |
242 |
28 Feb 07 |
enell |
59 |
SimpleHistogramBin bin = new SimpleHistogramBin(low/precision, high/precision, true, false); |
242 |
28 Feb 07 |
enell |
60 |
super.addBin(bin); |
242 |
28 Feb 07 |
enell |
61 |
} |
242 |
28 Feb 07 |
enell |
62 |
|
242 |
28 Feb 07 |
enell |
63 |
public double getBinSize() |
242 |
28 Feb 07 |
enell |
64 |
{ |
242 |
28 Feb 07 |
enell |
65 |
return binSize; |
242 |
28 Feb 07 |
enell |
66 |
} |
242 |
28 Feb 07 |
enell |
67 |
} |