亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? categoryplot.java

?? jfreechart1.0.1 jsp繪制圖表的開發(fā)包
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/* ===========================================================
 * JFreeChart : a free chart library for the Java(tm) platform
 * ===========================================================
 *
 * (C) Copyright 2000-2006, 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
 * USA.  
 *
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
 * in the United States and other countries.]
 *
 * -----------------
 * CategoryPlot.java
 * -----------------
 * (C) Copyright 2000-2006, by Object Refinery Limited and Contributors.
 *
 * Original Author:  David Gilbert (for Object Refinery Limited);
 * Contributor(s):   Jeremy Bowman;
 *                   Arnaud Lelievre;
 *
 * $Id: CategoryPlot.java,v 1.23.2.7 2006/01/27 10:20:14 mungady Exp $
 *
 * Changes (from 21-Jun-2001)
 * --------------------------
 * 21-Jun-2001 : Removed redundant JFreeChart parameter from constructors (DG);
 * 21-Aug-2001 : Added standard header. Fixed DOS encoding problem (DG);
 * 18-Sep-2001 : Updated header (DG);
 * 15-Oct-2001 : Data source classes moved to com.jrefinery.data.* (DG);
 * 22-Oct-2001 : Renamed DataSource.java --> Dataset.java etc. (DG);
 * 23-Oct-2001 : Changed intro and trail gaps on bar plots to use percentage of 
 *               available space rather than a fixed number of units (DG);
 * 12-Dec-2001 : Changed constructors to protected (DG);
 * 13-Dec-2001 : Added tooltips (DG);
 * 16-Jan-2002 : Increased maximum intro and trail gap percents, plus added 
 *               some argument checking code.  Thanks to Taoufik Romdhane for 
 *               suggesting this (DG);
 * 05-Feb-2002 : Added accessor methods for the tooltip generator, incorporated
 *               alpha-transparency for Plot and subclasses (DG);
 * 06-Mar-2002 : Updated import statements (DG);
 * 14-Mar-2002 : Renamed BarPlot.java --> CategoryPlot.java, and changed code 
 *               to use the CategoryItemRenderer interface (DG);
 * 22-Mar-2002 : Dropped the getCategories() method (DG);
 * 23-Apr-2002 : Moved the dataset from the JFreeChart class to the Plot 
 *               class (DG);
 * 29-Apr-2002 : New methods to support printing values at the end of bars, 
 *               contributed by Jeremy Bowman (DG);
 * 11-May-2002 : New methods for label visibility and overlaid plot support, 
 *               contributed by Jeremy Bowman (DG);
 * 06-Jun-2002 : Removed the tooltip generator, this is now stored with the 
 *               renderer.  Moved constants into the CategoryPlotConstants 
 *               interface.  Updated Javadoc comments (DG);
 * 10-Jun-2002 : Overridden datasetChanged() method to update the upper and 
 *               lower bound on the range axis (if necessary), updated 
 *               Javadocs (DG);
 * 25-Jun-2002 : Removed redundant imports (DG);
 * 20-Aug-2002 : Changed the constructor for Marker (DG);
 * 28-Aug-2002 : Added listener notification to setDomainAxis() and 
 *               setRangeAxis() (DG);
 * 23-Sep-2002 : Added getLegendItems() method and fixed errors reported by 
 *               Checkstyle (DG);
 * 28-Oct-2002 : Changes to the CategoryDataset interface (DG);
 * 05-Nov-2002 : Base dataset is now TableDataset not CategoryDataset (DG);
 * 07-Nov-2002 : Renamed labelXXX as valueLabelXXX (DG);
 * 18-Nov-2002 : Added grid settings for both domain and range axis (previously
 *               these were set in the axes) (DG);
 * 19-Nov-2002 : Added axis location parameters to constructor (DG);
 * 17-Jan-2003 : Moved to com.jrefinery.chart.plot package (DG);
 * 14-Feb-2003 : Fixed bug in auto-range calculation for secondary axis (DG);
 * 26-Mar-2003 : Implemented Serializable (DG);
 * 02-May-2003 : Moved render() method up from subclasses. Added secondary 
 *               range markers. Added an attribute to control the dataset 
 *               rendering order.  Added a drawAnnotations() method.  Changed 
 *               the axis location from an int to an AxisLocation (DG);
 * 07-May-2003 : Merged HorizontalCategoryPlot and VerticalCategoryPlot into 
 *               this class (DG);
 * 02-Jun-2003 : Removed check for range axis compatibility (DG);
 * 04-Jul-2003 : Added a domain gridline position attribute (DG);
 * 21-Jul-2003 : Moved DrawingSupplier to Plot superclass (DG);
 * 19-Aug-2003 : Added equals() method and implemented Cloneable (DG);
 * 01-Sep-2003 : Fixed bug 797466 (no change event when secondary dataset 
 *               changes) (DG);
 * 02-Sep-2003 : Fixed bug 795209 (wrong dataset checked in render2 method) and
 *               790407 (initialise method) (DG);
 * 08-Sep-2003 : Added internationalization via use of properties 
 *               resourceBundle (RFE 690236) (AL); 
 * 08-Sep-2003 : Fixed bug (wrong secondary range axis being used).  Changed 
 *               ValueAxis API (DG);
 * 10-Sep-2003 : Fixed bug in setRangeAxis() method (DG);
 * 15-Sep-2003 : Fixed two bugs in serialization, implemented 
 *               PublicCloneable (DG);
 * 23-Oct-2003 : Added event notification for changes to renderer (DG);
 * 26-Nov-2003 : Fixed bug (849645) in clearRangeMarkers() method (DG);
 * 03-Dec-2003 : Modified draw method to accept anchor (DG);
 * 21-Jan-2004 : Update for renamed method in ValueAxis (DG);
 * 10-Mar-2004 : Fixed bug in axis range calculation when secondary renderer is
 *               stacked (DG);
 * 12-May-2004 : Added fixed legend items (DG);
 * 19-May-2004 : Added check for null legend item from renderer (DG);
 * 02-Jun-2004 : Updated the DatasetRenderingOrder class (DG);
 * 05-Nov-2004 : Renamed getDatasetsMappedToRangeAxis() 
 *               --> datasetsMappedToRangeAxis(), and ensured that returned 
 *               list doesn't contain null datasets (DG);
 * 12-Nov-2004 : Implemented new Zoomable interface (DG);
 * 07-Jan-2005 : Renamed getRangeExtent() --> findRangeBounds() in 
 *               CategoryItemRenderer (DG);
 * 04-May-2005 : Fixed serialization of range markers (DG);
 * 05-May-2005 : Updated draw() method parameters (DG);
 * 20-May-2005 : Added setDomainAxes() and setRangeAxes() methods, as per
 *               RFE 1183100 (DG);
 * 01-Jun-2005 : Upon deserialization, register plot as a listener with its
 *               axes, dataset(s) and renderer(s) - see patch 1209475 (DG);
 * 02-Jun-2005 : Added support for domain markers (DG);
 * 06-Jun-2005 : Fixed equals() method for use with GradientPaint (DG);
 * 09-Jun-2005 : Added setRenderers(), as per RFE 1183100 (DG);
 * 16-Jun-2005 : Added getDomainAxisCount() and getRangeAxisCount() methods, to
 *               match XYPlot (see RFE 1220495) (DG);
 * ------------- JFreeChart 1.0.0 ---------------------------------------------
 * 11-Jan-2006 : Added configureRangeAxes() to rendererChanged(), since the
 *               renderer might influence the axis range (DG);
 * 27-Jan-2006 : Added various null argument checks (DG);
 * 
 */

package org.jfree.chart.plot;


import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Composite;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Shape;
import java.awt.Stroke;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;

import org.jfree.chart.LegendItem;
import org.jfree.chart.LegendItemCollection;
import org.jfree.chart.annotations.CategoryAnnotation;
import org.jfree.chart.axis.Axis;
import org.jfree.chart.axis.AxisCollection;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.AxisSpace;
import org.jfree.chart.axis.AxisState;
import org.jfree.chart.axis.CategoryAnchor;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.axis.ValueTick;
import org.jfree.chart.event.ChartChangeEventType;
import org.jfree.chart.event.PlotChangeEvent;
import org.jfree.chart.event.RendererChangeEvent;
import org.jfree.chart.event.RendererChangeListener;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.chart.renderer.category.CategoryItemRendererState;
import org.jfree.data.Range;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.Dataset;
import org.jfree.data.general.DatasetChangeEvent;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.io.SerialUtilities;
import org.jfree.ui.Layer;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RectangleInsets;
import org.jfree.util.ObjectList;
import org.jfree.util.ObjectUtilities;
import org.jfree.util.PaintUtilities;
import org.jfree.util.PublicCloneable;
import org.jfree.util.SortOrder;

/**
 * A general plotting class that uses data from a {@link CategoryDataset} and 
 * renders each data item using a {@link CategoryItemRenderer}.
 */
public class CategoryPlot extends Plot 
                          implements ValueAxisPlot, 
                                     Zoomable,
                                     RendererChangeListener,
                                     Cloneable, PublicCloneable, Serializable {

    /** For serialization. */
    private static final long serialVersionUID = -3537691700434728188L;
    
    /** 
     * The default visibility of the grid lines plotted against the domain 
     * axis. 
     */
    public static final boolean DEFAULT_DOMAIN_GRIDLINES_VISIBLE = false;

    /** 
     * The default visibility of the grid lines plotted against the range 
     * axis. 
     */
    public static final boolean DEFAULT_RANGE_GRIDLINES_VISIBLE = true;

    /** The default grid line stroke. */
    public static final Stroke DEFAULT_GRIDLINE_STROKE = new BasicStroke(0.5f,
        BasicStroke.CAP_BUTT,
        BasicStroke.JOIN_BEVEL,
        0.0f,
        new float[] {2.0f, 2.0f},
        0.0f);

    /** The default grid line paint. */
    public static final Paint DEFAULT_GRIDLINE_PAINT = Color.lightGray;

    /** The default value label font. */
    public static final Font DEFAULT_VALUE_LABEL_FONT 
        = new Font("SansSerif", Font.PLAIN, 10);

    /** The resourceBundle for the localization. */
    protected static ResourceBundle localizationResources 
        = ResourceBundle.getBundle("org.jfree.chart.plot.LocalizationBundle");

    /** The plot orientation. */
    private PlotOrientation orientation;

    /** The offset between the data area and the axes. */
    private RectangleInsets axisOffset;

    /** Storage for the domain axes. */
    private ObjectList domainAxes;

    /** Storage for the domain axis locations. */
    private ObjectList domainAxisLocations;

    /**
     * A flag that controls whether or not the shared domain axis is drawn 
     * (only relevant when the plot is being used as a subplot).
     */
    private boolean drawSharedDomainAxis;

    /** Storage for the range axes. */
    private ObjectList rangeAxes;

    /** Storage for the range axis locations. */
    private ObjectList rangeAxisLocations;

    /** Storage for the datasets. */
    private ObjectList datasets;

    /** Storage for keys that map datasets to domain axes. */
    private ObjectList datasetToDomainAxisMap;
    
    /** Storage for keys that map datasets to range axes. */
    private ObjectList datasetToRangeAxisMap;

    /** Storage for the renderers. */
    private ObjectList renderers;

    /** The dataset rendering order. */
    private DatasetRenderingOrder renderingOrder 
        = DatasetRenderingOrder.REVERSE;

    /** 
     * Controls the order in which the columns are traversed when rendering the 
     * data items. 
     */
    private SortOrder columnRenderingOrder = SortOrder.ASCENDING;
    
    /** 
     * Controls the order in which the rows are traversed when rendering the 
     * data items. 
     */
    private SortOrder rowRenderingOrder = SortOrder.ASCENDING;
    
    /** 
     * A flag that controls whether the grid-lines for the domain axis are 
     * visible. 
     */
    private boolean domainGridlinesVisible;

    /** The position of the domain gridlines relative to the category. */
    private CategoryAnchor domainGridlinePosition;

    /** The stroke used to draw the domain grid-lines. */
    private transient Stroke domainGridlineStroke;

    /** The paint used to draw the domain  grid-lines. */
    private transient Paint domainGridlinePaint;

    /** 
     * A flag that controls whether the grid-lines for the range axis are 
     * visible. 
     */
    private boolean rangeGridlinesVisible;

    /** The stroke used to draw the range axis grid-lines. */
    private transient Stroke rangeGridlineStroke;

    /** The paint used to draw the range axis grid-lines. */
    private transient Paint rangeGridlinePaint;

    /** The anchor value. */
    private double anchorValue;

    /** A flag that controls whether or not a range crosshair is drawn..*/
    private boolean rangeCrosshairVisible;

    /** The range crosshair value. */
    private double rangeCrosshairValue;

    /** The pen/brush used to draw the crosshair (if any). */
    private transient Stroke rangeCrosshairStroke;

    /** The color used to draw the crosshair (if any). */
    private transient Paint rangeCrosshairPaint;

    /** 
     * A flag that controls whether or not the crosshair locks onto actual 
     * data points. 
     */
    private boolean rangeCrosshairLockedOnData = true;

    /** A map containing lists of markers for the domain axes. */
    private Map foregroundDomainMarkers;

    /** A map containing lists of markers for the domain axes. */
    private Map backgroundDomainMarkers;

    /** A map containing lists of markers for the range axes. */
    private Map foregroundRangeMarkers;

    /** A map containing lists of markers for the range axes. */
    private Map backgroundRangeMarkers;

    /** 
     * A (possibly empty) list of annotations for the plot.  The list should
     * be initialised in the constructor and never allowed to be 
     * <code>null</code>.
     */
    private List annotations;

    /**
     * The weight for the plot (only relevant when the plot is used as a subplot
     * within a combined plot).
     */
    private int weight;

    /** The fixed space for the domain axis. */
    private AxisSpace fixedDomainAxisSpace;

    /** The fixed space for the range axis. */
    private AxisSpace fixedRangeAxisSpace;

    /** 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人在线观看| 91社区在线播放| 555www色欧美视频| 亚洲成va人在线观看| 久久综合色8888| 成人综合婷婷国产精品久久 | 久久久亚洲欧洲日产国码αv| 美国av一区二区| 久久嫩草精品久久久精品一| 日本精品一级二级| 人妖欧美一区二区| 欧美精品一区二区三区视频| 国产丶欧美丶日本不卡视频| 国产精品美女久久久久久久| 色系网站成人免费| 日欧美一区二区| 精品久久99ma| 国产白丝网站精品污在线入口| 国产精品短视频| 在线播放91灌醉迷j高跟美女| 蓝色福利精品导航| 亚洲国产精品99久久久久久久久 | 日产精品久久久久久久性色| 欧美v国产在线一区二区三区| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美亚一区二区| 久久机这里只有精品| 亚洲小说春色综合另类电影| 精品久久五月天| 在线不卡欧美精品一区二区三区| 色婷婷精品大在线视频| 色婷婷久久一区二区三区麻豆| 国产91精品一区二区麻豆网站| 精品无人码麻豆乱码1区2区| 国产精品成人免费| 国产精品天天摸av网| 国产亚洲欧美一级| 777色狠狠一区二区三区| 欧美伊人久久大香线蕉综合69| 色综合咪咪久久| 91麻豆国产香蕉久久精品| 99精品久久99久久久久| 美女一区二区三区在线观看| 蜜桃视频免费观看一区| 美女视频一区二区三区| 奇米综合一区二区三区精品视频| 婷婷中文字幕综合| 中文字幕亚洲在| 精品国产网站在线观看| 欧美va亚洲va国产综合| 精品国产91久久久久久久妲己 | 国产白丝精品91爽爽久久| 国产激情视频一区二区在线观看| 国产呦萝稀缺另类资源| 亚洲一二三区不卡| 婷婷久久综合九色综合绿巨人| 天堂一区二区在线| 免费人成在线不卡| 国产乱淫av一区二区三区 | 亚洲一区电影777| 国产精品嫩草影院av蜜臀| 中文字幕一区在线观看视频| 亚洲丝袜另类动漫二区| 亚洲国产精品高清| 国产精品第13页| 亚洲高清一区二区三区| 日产国产欧美视频一区精品| 九色|91porny| 成人免费高清在线观看| 欧美影院精品一区| 日韩女优制服丝袜电影| 在线电影院国产精品| 精品久久久久久久久久久久包黑料 | 亚洲特级片在线| 亚洲国产欧美一区二区三区丁香婷| 日韩精品视频网站| 国产乱码一区二区三区| 一本到高清视频免费精品| 欧美影院精品一区| 久久这里都是精品| 成人欧美一区二区三区白人 | 91麻豆免费视频| 欧美一区二区在线免费播放| 欧美日韩激情在线| 欧美日韩夫妻久久| 国产欧美1区2区3区| 中文字幕一区在线观看视频| 日韩av一区二区在线影视| 国产一区二区91| 欧美天堂亚洲电影院在线播放| 久久久久久一级片| 亚洲成av人片在线观看无码| 国产精品一区免费视频| 欧美日韩成人激情| 日韩毛片一二三区| 久久99国产精品尤物| 色综合久久久久久久| 久久夜色精品国产欧美乱极品| 亚洲人成网站精品片在线观看| 亚洲欧美乱综合| 国产福利不卡视频| 日韩午夜激情视频| 久久久三级国产网站| 亚洲最新视频在线播放| 午夜a成v人精品| 成人午夜免费电影| 精品久久久久久久久久久院品网| 亚洲五月六月丁香激情| 高清不卡一二三区| xfplay精品久久| 天天色图综合网| 日本高清无吗v一区| 久久久www成人免费无遮挡大片| 亚洲成a人在线观看| 91精品1区2区| 成人免费一区二区三区在线观看| 韩国av一区二区三区四区| 国产成+人+日韩+欧美+亚洲| 欧美tk—视频vk| 日韩av不卡一区二区| 欧美亚洲国产一区在线观看网站| 中文字幕在线不卡一区| 国产a视频精品免费观看| 欧美一级专区免费大片| 午夜精品福利视频网站 | 久久青草欧美一区二区三区| 日韩精品成人一区二区在线| 欧美老肥妇做.爰bbww| 一区二区三区鲁丝不卡| 色天天综合色天天久久| 综合久久给合久久狠狠狠97色| 国产福利精品导航| 国产日韩精品视频一区| 国产一区二区精品久久91| 精品国产百合女同互慰| 久久机这里只有精品| 26uuu国产电影一区二区| 狠狠色综合播放一区二区| 精品国产免费久久| 国产在线精品不卡| 久久久久久久久岛国免费| 国产麻豆成人精品| 久久久久久久精| 成人白浆超碰人人人人| 日韩你懂的电影在线观看| 日韩vs国产vs欧美| 精品美女被调教视频大全网站| 精品一区二区免费在线观看| 精品国产一区二区三区久久影院| 九九热在线视频观看这里只有精品| 亚洲精品一区二区三区蜜桃下载 | 中文字幕在线一区| 99国产精品国产精品久久| 亚洲精品国产a久久久久久| 国产福利一区在线| 国产精品久久久久永久免费观看| 不卡区在线中文字幕| 一区二区三区四区五区视频在线观看| 日本久久精品电影| 免费观看成人av| 欧美激情在线一区二区| 99久久国产综合精品麻豆| 亚洲图片有声小说| 日韩免费一区二区| 菠萝蜜视频在线观看一区| 一区二区三区在线看| 欧美日本不卡视频| 国产主播一区二区| 亚洲婷婷综合久久一本伊一区| 欧美日韩在线观看一区二区| 亚洲男女毛片无遮挡| 8v天堂国产在线一区二区| 国产米奇在线777精品观看| 亚洲女与黑人做爰| 欧美一区二区三区小说| 成人免费视频免费观看| 亚洲大片精品永久免费| 2021中文字幕一区亚洲| 91免费视频网址| 麻豆91在线播放免费| 国产精品国产三级国产有无不卡| 欧美日韩成人高清| 成人av在线一区二区| 日本欧美一区二区三区乱码| 国产精品人妖ts系列视频| 欧美日韩视频专区在线播放| 国产麻豆精品一区二区| 亚洲国产日韩av| 国产精品卡一卡二| 欧美成人bangbros| 欧美亚洲尤物久久| 国产成人在线免费观看| 三级亚洲高清视频| 亚洲欧美国产毛片在线| 久久奇米777| 91精品国产综合久久精品app| 成人av综合在线| 国产在线播精品第三| 亚洲福利一二三区| 中文字幕亚洲电影|