Frames | No Frames |
1: /* =========================================================== 2: * JFreeChart : a free chart library for the Java(tm) platform 3: * =========================================================== 4: * 5: * (C) Copyright 2000-2007, by Object Refinery Limited and Contributors. 6: * 7: * Project Info: http://www.jfree.org/jfreechart/index.html 8: * 9: * This library is free software; you can redistribute it and/or modify it 10: * under the terms of the GNU Lesser General Public License as published by 11: * the Free Software Foundation; either version 2.1 of the License, or 12: * (at your option) any later version. 13: * 14: * This library is distributed in the hope that it will be useful, but 15: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 17: * License for more details. 18: * 19: * You should have received a copy of the GNU Lesser General Public 20: * License along with this library; if not, write to the Free Software 21: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 22: * USA. 23: * 24: * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 25: * in the United States and other countries.] 26: * 27: * --------------------------- 28: * BoxAndWhiskerXYDataset.java 29: * --------------------------- 30: * (C) Copyright 2003, 2007, by David Browning and Contributors. 31: * 32: * Original Author: David Browning (for Australian Institute of Marine 33: * Science); 34: * Contributor(s): David Gilbert (for Object Refinery Limited); 35: * 36: * $Id: BoxAndWhiskerXYDataset.java,v 1.3.2.2 2007/02/02 15:50:24 mungady Exp $ 37: * 38: * Changes 39: * ------- 40: * 05-Aug-2003 : Version 1, contributed by David Browning (DG); 41: * 12-Aug-2003 : Added new methods: getMaxNonOutlierValue 42: * getMaxNonFaroutValue 43: * getOutlierCoefficient 44: * setOutlierCoefficient 45: * getFaroutCoefficient 46: * setFaroutCoefficient 47: * getInterquartileRange (DB) 48: * 27-Aug-2003 : Renamed BoxAndWhiskerDataset --> BoxAndWhiskerXYDataset, and 49: * cut down methods (DG); 50: * ------------- JFREECHART 1.0.x --------------------------------------------- 51: * 02-Feb-2007 : Removed author tags from all over JFreeChart sources (DG); 52: * 53: */ 54: 55: package org.jfree.data.statistics; 56: 57: import java.util.List; 58: 59: import org.jfree.data.xy.XYDataset; 60: 61: /** 62: * An interface that defines data in the form of (x, max, min, average, median) 63: * tuples. 64: * <P> 65: * Example: JFreeChart uses this interface to obtain data for AIMS 66: * max-min-average-median plots. 67: */ 68: public interface BoxAndWhiskerXYDataset extends XYDataset { 69: 70: /** 71: * Returns the mean for the specified series and item. 72: * 73: * @param series the series (zero-based index). 74: * @param item the item (zero-based index). 75: * 76: * @return The mean for the specified series and item. 77: */ 78: public Number getMeanValue(int series, int item); 79: 80: /** 81: * Returns the median-value for the specified series and item. 82: * 83: * @param series the series (zero-based index). 84: * @param item the item (zero-based index). 85: * 86: * @return The median-value for the specified series and item. 87: */ 88: public Number getMedianValue(int series, int item); 89: 90: /** 91: * Returns the Q1 median-value for the specified series and item. 92: * 93: * @param series the series (zero-based index). 94: * @param item the item (zero-based index). 95: * 96: * @return The Q1 median-value for the specified series and item. 97: */ 98: public Number getQ1Value(int series, int item); 99: 100: /** 101: * Returns the Q3 median-value for the specified series and item. 102: * 103: * @param series the series (zero-based index). 104: * @param item the item (zero-based index). 105: * 106: * @return The Q3 median-value for the specified series and item. 107: */ 108: public Number getQ3Value(int series, int item); 109: 110: /** 111: * Returns the min-value for the specified series and item. 112: * 113: * @param series the series (zero-based index). 114: * @param item the item (zero-based index). 115: * 116: * @return The min-value for the specified series and item. 117: */ 118: public Number getMinRegularValue(int series, int item); 119: 120: /** 121: * Returns the max-value for the specified series and item. 122: * 123: * @param series the series (zero-based index). 124: * @param item the item (zero-based index). 125: * 126: * @return The max-value for the specified series and item. 127: */ 128: public Number getMaxRegularValue(int series, int item); 129: 130: /** 131: * Returns the minimum value which is not a farout. 132: * @param series the series (zero-based index). 133: * @param item the item (zero-based index). 134: * 135: * @return A <code>Number</code> representing the maximum non-farout value. 136: */ 137: public Number getMinOutlier(int series, int item); 138: 139: /** 140: * Returns the maximum value which is not a farout, ie Q3 + (interquartile 141: * range * farout coefficient). 142: * 143: * @param series the series (zero-based index). 144: * @param item the item (zero-based index). 145: * 146: * @return A <code>Number</code> representing the maximum non-farout value. 147: */ 148: public Number getMaxOutlier(int series, int item); 149: 150: /** 151: * Returns an array of outliers for the specified series and item. 152: * 153: * @param series the series (zero-based index). 154: * @param item the item (zero-based index). 155: * 156: * @return The array of outliers for the specified series and item. 157: */ 158: public List getOutliers(int series, int item); 159: 160: /** 161: * Returns the value used as the outlier coefficient. The outlier 162: * coefficient gives an indication of the degree of certainty in an 163: * unskewed distribution. Increasing the coefficient increases the number 164: * of values included. Currently only used to ensure farout coefficient 165: * is greater than the outlier coefficient 166: * 167: * @return A <code>double</code> representing the value used to calculate 168: * outliers 169: */ 170: public double getOutlierCoefficient(); 171: 172: /** 173: * Returns the value used as the farout coefficient. The farout coefficient 174: * allows the calculation of which values will be off the graph. 175: * 176: * @return A <code>double</code> representing the value used to calculate 177: * farouts 178: */ 179: public double getFaroutCoefficient(); 180: 181: }