defaultboxandwhiskercategorydataset.java
来自「JfreeChart 常用图表例子」· Java 代码 · 共 698 行 · 第 1/2 页
JAVA
698 行
/* =========================================================== * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public * License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, write to the Free Software Foundation, * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * [Java is a trademark or registered trademark of Sun Microsystems, Inc. * in the United States and other countries.] * * ---------------------------------------- * DefaultBoxAndWhiskerCategoryDataset.java * ---------------------------------------- * (C) Copyright 2003-2005, by David Browning and Contributors. * * Original Author: David Browning (for Australian Institute of Marine * Science); * Contributor(s): David Gilbert (for Object Refinery Limited); * * $Id: DefaultBoxAndWhiskerCategoryDataset.java,v 1.9 2005/05/20 08:58:08 mungady Exp $ * * Changes * ------- * 05-Aug-2003 : Version 1, contributed by David Browning (DG); * 27-Aug-2003 : Moved from org.jfree.data --> org.jfree.data.statistics (DG); * 12-Nov-2003 : Changed 'data' from private to protected and added a new 'add' * method as proposed by Tim Bardzil. Also removed old code (DG); * 01-Mar-2004 : Added equals() method (DG); * 18-Nov-2004 : Updates for changes in RangeInfo interface (DG); * 11-Jan-2005 : Removed deprecated code in preparation for the 1.0.0 * release (DG); * */package org.jfree.data.statistics;import java.util.List;import org.jfree.data.KeyedObjects2D;import org.jfree.data.Range;import org.jfree.data.RangeInfo;import org.jfree.data.general.AbstractDataset;import org.jfree.util.ObjectUtilities;/** * A convenience class that provides a default implementation of the * {@link BoxAndWhiskerCategoryDataset} interface. * * @author David Browning (for Australian Institute of Marine Science) */public class DefaultBoxAndWhiskerCategoryDataset extends AbstractDataset implements BoxAndWhiskerCategoryDataset, RangeInfo { /** Storage for the data. */ protected KeyedObjects2D data; /** The minimum range value. */ private Number minimumRangeValue; /** The maximum range value. */ private Number maximumRangeValue; /** The range of values. */ private Range rangeBounds; /** * Creates a new dataset. */ public DefaultBoxAndWhiskerCategoryDataset() { this.data = new KeyedObjects2D(); this.minimumRangeValue = null; this.maximumRangeValue = null; this.rangeBounds = new Range(0.0, 0.0); } /** * Adds a list of values relating to one box-and-whisker entity to the * table. The various median values are calculated. * * @param list a collection of values from which the various medians will * be calculated. * @param rowKey the row key. * @param columnKey the column key. */ public void add(List list, Comparable rowKey, Comparable columnKey) { BoxAndWhiskerItem item = BoxAndWhiskerCalculator.calculateBoxAndWhiskerStatistics(list); add(item, rowKey, columnKey); } /** * Adds a list of values relating to one Box and Whisker entity to the * table. The various median values are calculated. * * @param item a box and whisker item. * @param rowKey the row key. * @param columnKey the column key. */ public void add(BoxAndWhiskerItem item, Comparable rowKey, Comparable columnKey) { this.data.addObject(item, rowKey, columnKey); double minval = item.getMinOutlier().doubleValue(); double maxval = item.getMaxOutlier().doubleValue(); if (this.maximumRangeValue == null) { this.maximumRangeValue = new Double(maxval); } else if (maxval > this.maximumRangeValue.doubleValue()) { this.maximumRangeValue = new Double(maxval); } if (this.minimumRangeValue == null) { this.minimumRangeValue = new Double(minval); } else if (minval < this.minimumRangeValue.doubleValue()) { this.minimumRangeValue = new Double(minval); } this.rangeBounds = new Range( this.minimumRangeValue.doubleValue(), this.maximumRangeValue.doubleValue() ); fireDatasetChanged(); } /** * Return an item from within the dataset. * * @param row the row index. * @param column the column index. * * @return The item. */ public BoxAndWhiskerItem getItem(int row, int column) { return (BoxAndWhiskerItem) this.data.getObject(row, column); } /** * Returns the value for an item. * * @param row the row index. * @param column the column index. * * @return The value. */ public Number getValue(int row, int column) { return getMedianValue(row, column); } /** * Returns the value for an item. * * @param rowKey the row key. * @param columnKey the columnKey. * * @return The value. */ public Number getValue(Comparable rowKey, Comparable columnKey) { return getMedianValue(rowKey, columnKey); } /** * Returns the mean value for an item. * * @param row the row index (zero-based). * @param column the column index (zero-based). * * @return The mean value. */ public Number getMeanValue(int row, int column) { Number result = null; BoxAndWhiskerItem item = (BoxAndWhiskerItem) this.data.getObject( row, column ); if (item != null) { result = item.getMean(); } return result; } /** * Returns the mean value for an item. * * @param rowKey the row key. * @param columnKey the column key. * * @return The mean value. */ public Number getMeanValue(Comparable rowKey, Comparable columnKey) { Number result = null; BoxAndWhiskerItem item = (BoxAndWhiskerItem) this.data.getObject( rowKey, columnKey ); if (item != null) { result = item.getMean(); } return result; } /** * Returns the median value for an item. * * @param row the row index (zero-based). * @param column the column index (zero-based). * * @return The median value. */ public Number getMedianValue(int row, int column) { Number result = null; BoxAndWhiskerItem item = (BoxAndWhiskerItem) this.data.getObject( row, column ); if (item != null) { result = item.getMedian(); } return result; } /** * Returns the median value for an item. * * @param rowKey the row key. * @param columnKey the columnKey. * * @return The median value. */ public Number getMedianValue(Comparable rowKey, Comparable columnKey) { Number result = null; BoxAndWhiskerItem item = (BoxAndWhiskerItem) this.data.getObject( rowKey, columnKey ); if (item != null) { result = item.getMedian(); } return result; } /** * Returns the first quartile value. * * @param row the row index (zero-based). * @param column the column index (zero-based). * * @return The first quartile value. */ public Number getQ1Value(int row, int column) { Number result = null; BoxAndWhiskerItem item = (BoxAndWhiskerItem) this.data.getObject( row, column ); if (item != null) { result = item.getQ1(); } return result; } /** * Returns the first quartile value. * * @param rowKey the row key. * @param columnKey the column key. * * @return The first quartile value. */ public Number getQ1Value(Comparable rowKey, Comparable columnKey) { Number result = null; BoxAndWhiskerItem item = (BoxAndWhiskerItem) this.data.getObject( rowKey, columnKey ); if (item != null) { result = item.getQ1(); } return result; } /** * Returns the third quartile value. * * @param row the row index (zero-based). * @param column the column index (zero-based). * * @return The third quartile value. */ public Number getQ3Value(int row, int column) { Number result = null; BoxAndWhiskerItem item = (BoxAndWhiskerItem) this.data.getObject( row, column ); if (item != null) { result = item.getQ3(); } return result; } /** * Returns the third quartile value. * * @param rowKey the row key. * @param columnKey the column key. * * @return The third quartile value. */ public Number getQ3Value(Comparable rowKey, Comparable columnKey) { Number result = null; BoxAndWhiskerItem item = (BoxAndWhiskerItem) this.data.getObject( rowKey, columnKey ); if (item != null) { result = item.getQ3(); } return result; } /** * Returns the column index for a given key. * * @param key the column key. * * @return The column index. */ public int getColumnIndex(Comparable key) { return this.data.getColumnIndex(key); } /** * Returns a column key.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?