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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? spiderwebplot.java

?? 制作圖表的好工具
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
/* ===========================================================
 * 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., 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.]
 * 
 * ------------------
 * SpiderWebPlot.java
 * ------------------
 * (C) Copyright 2005, by Heaps of Flavour Pty Ltd.
 *
 * Company Info:  http://www.i4-talent.com
 *
 * Original Author:  Don Elliott;
 * Contributor(s):   David Gilbert (for Object Refinery Limited);
 *
 * $Id: SpiderWebPlot.java,v 1.11.2.5 2005/11/28 12:06:35 mungady Exp $
 *
 * Changes (from 28-Jan-2005)
 * --------------------------
 * 28-Jan-2005 : First cut - missing a few features - still to do:
 *                           - needs tooltips/URL/label generator functions
 *                           - ticks on axes / background grid?
 * 31-Jan-2005 : Renamed SpiderWebPlot, added label generator support, and 
 *               reformatted for consistency with other source files in 
 *               JFreeChart (DG);
 * 20-Apr-2005 : Renamed CategoryLabelGenerator 
 *               --> CategoryItemLabelGenerator (DG);
 * 05-May-2005 : Updated draw() method parameters (DG);
 * 10-Jun-2005 : Added equals() method and fixed serialization (DG);
 * 16-Jun-2005 : Added default constructor and get/setDataset() 
 *               methods (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.Polygon;
import java.awt.Shape;
import java.awt.Stroke;
import java.awt.font.FontRenderContext;
import java.awt.font.LineMetrics;
import java.awt.geom.Arc2D;
import java.awt.geom.Ellipse2D;
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.Iterator;
import java.util.List;

import org.jfree.chart.LegendItem;
import org.jfree.chart.LegendItemCollection;
import org.jfree.chart.event.PlotChangeEvent;
import org.jfree.chart.labels.CategoryItemLabelGenerator;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetChangeEvent;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.io.SerialUtilities;
import org.jfree.ui.RectangleInsets;
import org.jfree.util.ObjectUtilities;
import org.jfree.util.PaintList;
import org.jfree.util.PaintUtilities;
import org.jfree.util.Rotation;
import org.jfree.util.ShapeUtilities;
import org.jfree.util.StrokeList;
import org.jfree.util.TableOrder;

/**
 * A plot that displays data from a {@link CategoryDataset} in the form of a 
 * "spider web".  Multiple series can be plotted on the same axis to allow 
 * easy comparison.
 */
public class SpiderWebPlot extends Plot implements Cloneable, Serializable {
    
    /** For serialization. */
    private static final long serialVersionUID = -5376340422031599463L;
    
    /** The default head radius percent (currently 1%). */
    public static final double DEFAULT_HEAD = 0.01;

    /** The default axis label gap (currently 10%). */
    public static final double DEFAULT_AXIS_LABEL_GAP = 0.10;
 
    /** The default interior gap. */
    public static final double DEFAULT_INTERIOR_GAP = 0.25;

    /** The maximum interior gap (currently 40%). */
    public static final double MAX_INTERIOR_GAP = 0.40;

    /** The default starting angle for the radar chart axes. */
    public static final double DEFAULT_START_ANGLE = 90.0;

    /** The default series label font. */
    public static final Font   DEFAULT_LABEL_FONT = new Font(
        "SansSerif", Font.PLAIN, 10
    );
    
    /** The default series label paint. */
    public static final Paint  DEFAULT_LABEL_PAINT = Color.black;

    /** The default series label background paint. */
    public static final Paint  DEFAULT_LABEL_BACKGROUND_PAINT 
        = new Color(255, 255, 192);

    /** The default series label outline paint. */
    public static final Paint  DEFAULT_LABEL_OUTLINE_PAINT = Color.black;

    /** The default series label outline stroke. */
    public static final Stroke DEFAULT_LABEL_OUTLINE_STROKE 
        = new BasicStroke(0.5f);

    /** The default series label shadow paint. */
    public static final Paint  DEFAULT_LABEL_SHADOW_PAINT = Color.lightGray;

    /** 
     * The default maximum value plotted - forces the plot to evaluate
     *  the maximum from the data passed in
     */
    public static final double DEFAULT_MAX_VALUE = -1.0;

    /** The head radius as a percentage of the available drawing area. */
    protected double headPercent;

    /** The space left around the outside of the plot as a percentage. */
    private double interiorGap;

    /** The gap between the labels and the axes as a %age of the radius. */
    private double axisLabelGap;

    /** The dataset. */
    private CategoryDataset dataset;

    /** The maximum value we are plotting against on each category axis */
    private double maxValue;
  
    /** 
     * The data extract order (BY_ROW or BY_COLUMN). This denotes whether
     * the data series are stored in rows (in which case the category names are
     * derived from the column keys) or in columns (in which case the category
     * names are derived from the row keys).
     */
    private TableOrder dataExtractOrder;

    /** The starting angle. */
    private double startAngle;

    /** The direction for drawing the radar axis & plots. */
    private Rotation direction;

    /** The legend item shape. */
    private transient Shape legendItemShape;

    /** The paint for ALL series (overrides list). */
    private transient Paint seriesPaint;

    /** The series paint list. */
    private PaintList seriesPaintList;

    /** The base series paint (fallback). */
    private transient Paint baseSeriesPaint;

    /** The outline paint for ALL series (overrides list). */
    private transient Paint seriesOutlinePaint;

    /** The series outline paint list. */
    private PaintList seriesOutlinePaintList;

    /** The base series outline paint (fallback). */
    private transient Paint baseSeriesOutlinePaint;

    /** The outline stroke for ALL series (overrides list). */
    private transient Stroke seriesOutlineStroke;

    /** The series outline stroke list. */
    private StrokeList seriesOutlineStrokeList;

    /** The base series outline stroke (fallback). */
    private transient Stroke baseSeriesOutlineStroke;

    /** The font used to display the category labels. */
    private Font labelFont;

    /** The color used to draw the category labels. */
    private transient Paint labelPaint;
    
    /** The label generator. */
    private CategoryItemLabelGenerator labelGenerator;

    /** controls if the web polygons are filled or not */
    private boolean webFilled = true;
  
    /**
     * Creates a default plot with no dataset.
     */
    public SpiderWebPlot() {
        this(null);   
    }
    
    /**
     * Creates a new radar plot with default attributes.
     * 
     * @param dataset  the dataset (<code>null</code> permitted).
     */
    public SpiderWebPlot(CategoryDataset dataset) {
        super();
        this.dataset = dataset;
        if (dataset != null) {
            dataset.addChangeListener(this);
        }

        this.dataExtractOrder = TableOrder.BY_ROW;
        this.headPercent = DEFAULT_HEAD;
        this.axisLabelGap = DEFAULT_AXIS_LABEL_GAP;

        this.interiorGap = DEFAULT_INTERIOR_GAP;
        this.startAngle = DEFAULT_START_ANGLE;
        this.direction = Rotation.CLOCKWISE;
        this.maxValue = DEFAULT_MAX_VALUE;

        this.seriesPaint = null;
        this.seriesPaintList = new PaintList();
        this.baseSeriesPaint = null;

        this.seriesOutlinePaint = null;
        this.seriesOutlinePaintList = new PaintList();
        this.baseSeriesOutlinePaint = DEFAULT_OUTLINE_PAINT;

        this.seriesOutlineStroke = null;
        this.seriesOutlineStrokeList = new StrokeList();
        this.baseSeriesOutlineStroke = DEFAULT_OUTLINE_STROKE;

        this.labelFont = DEFAULT_LABEL_FONT;
        this.labelPaint = DEFAULT_LABEL_PAINT;
        this.labelGenerator = new StandardCategoryItemLabelGenerator();
        
        this.legendItemShape = DEFAULT_LEGEND_ITEM_CIRCLE;
    }

    /**
     * Creates a new radar plot overriding the data extraction order.
     * 
     * @param data  the data.
     * @param type  controls how radar data is extracted (BY_ROW or BY_COLUMN).
     */
    public SpiderWebPlot(CategoryDataset data, TableOrder type) {
        this(data);
        this.dataExtractOrder = type;
    }

    /**
     * Returns a short string describing the type of plot.
     * 
     * @return The plot type.
     */
    public String getPlotType() {
        // return localizationResources.getString("Radar_Plot");
        return ("Radar Plot");
    }
    
    /**
     * Returns the dataset.
     * 
     * @return The dataset (possibly <code>null</code>).
     */
    public CategoryDataset getDataset() {
        return this.dataset;   
    }
    
    /**
     * Sets the dataset used by the plot and sends a {@link PlotChangeEvent}
     * to all registered listeners.
     * 
     * @param dataset  the dataset (<code>null</code> permitted).
     */
    public void setDataset(CategoryDataset dataset) {
        // if there is an existing dataset, remove the plot from the list of 
        // change listeners...
        if (this.dataset != null) {
            this.dataset.removeChangeListener(this);
        }

        // set the new dataset, and register the chart as a change listener...
        this.dataset = dataset;
        if (dataset != null) {
            setDatasetGroup(dataset.getGroup());
            dataset.addChangeListener(this);
        }

        // send a dataset change event to self to trigger plot change event
        datasetChanged(new DatasetChangeEvent(this, dataset));
    }
    
    /**
     * Method to determine if the web chart is to be filled.
     * 
     * @return A boolean.
     */
    public boolean isWebFilled() {
        return this.webFilled;
    }

    /**
     * Sets the webFilled flag and sends a {@link PlotChangeEvent} to all 
     * registered listeners.
     * 
     * @param flag  the flag.
     */
    public void setWebFilled(boolean flag) {
        this.webFilled = flag;
        notifyListeners(new PlotChangeEvent(this));
    }
  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一区在线观看| 中文字幕免费不卡在线| 日韩欧美高清一区| 亚洲日本韩国一区| 国内精品嫩模私拍在线| 欧美在线视频日韩| 国产女人18毛片水真多成人如厕 | 麻豆成人91精品二区三区| 高清av一区二区| 日韩一区二区三区视频| 自拍偷拍国产精品| 国产二区国产一区在线观看| 欧美女孩性生活视频| 亚洲精品乱码久久久久久久久 | 国产精品久久久久久户外露出 | 欧美在线观看一二区| 久久精品欧美一区二区三区麻豆| 香蕉久久一区二区不卡无毒影院 | 亚洲主播在线观看| 波多野结衣91| 国产农村妇女毛片精品久久麻豆| 日本女人一区二区三区| 欧美精品色综合| 亚洲不卡在线观看| 91国产成人在线| 国产精品天天摸av网| 国产美女精品在线| 久久噜噜亚洲综合| 精品一区二区三区影院在线午夜| 欧美日韩另类一区| 爽好多水快深点欧美视频| 一本一道久久a久久精品 | 久久美女艺术照精彩视频福利播放| 日本中文在线一区| 欧美精品日韩一本| 日本不卡123| 欧美一级免费观看| 免费日韩伦理电影| 日韩一区二区三区视频在线观看| 免费高清在线一区| 日韩视频一区二区在线观看| 免费在线观看视频一区| 91麻豆精品国产91| 久久精品国产精品亚洲红杏| 精品久久久三级丝袜| 久久se精品一区精品二区| 日韩一级高清毛片| 国产一区视频导航| 欧美国产丝袜视频| 91免费在线播放| 亚洲国产精品嫩草影院| 91精品国产日韩91久久久久久| 玖玖九九国产精品| 久久久久久亚洲综合影院红桃| 国产成人超碰人人澡人人澡| 亚洲欧美日韩国产一区二区三区 | 色噜噜狠狠成人网p站| 亚洲大尺度视频在线观看| 欧美一区二区大片| 成人免费看的视频| 午夜久久久影院| 久久综合一区二区| 91福利国产成人精品照片| 日韩电影在线免费| 中文字幕一区二区三区视频| 欧美伦理影视网| 国产一区二区精品久久99| 自拍av一区二区三区| 在线播放日韩导航| 成人自拍视频在线| 日韩高清电影一区| 国产视频一区二区三区在线观看| 91麻豆蜜桃一区二区三区| 欧美a级理论片| 亚洲色图一区二区| 欧美区视频在线观看| 国产福利不卡视频| 肉肉av福利一精品导航| 中文字幕av不卡| 欧美一级在线观看| 在线观看日产精品| 黄页网站大全一区二区| 亚洲美女在线国产| 久久久国际精品| 91精选在线观看| 成人高清免费观看| 久久99久久久久久久久久久| 亚洲欧美日韩在线| 久久久精品国产免大香伊| 欧美日本免费一区二区三区| 成人一区二区三区视频| 裸体健美xxxx欧美裸体表演| 亚洲欧美日韩综合aⅴ视频| 久久精品水蜜桃av综合天堂| 欧美精品一卡两卡| 在线免费观看一区| 91在线丨porny丨国产| 国产福利91精品| 韩国女主播成人在线观看| 亚洲一区二区av在线| 国产精品狼人久久影院观看方式| 欧美成人精品二区三区99精品| 欧美日韩午夜精品| 欧洲在线/亚洲| 91丨九色丨尤物| 99亚偷拍自图区亚洲| 大白屁股一区二区视频| 国产一区二区三区蝌蚪| 狠狠色丁香婷婷综合| 久久精品国产精品亚洲精品| 日本va欧美va精品| 日韩精品亚洲专区| 日本女优在线视频一区二区 | 亚洲精品乱码久久久久久日本蜜臀| 国产欧美日韩在线观看| 国产色综合一区| 精品少妇一区二区三区日产乱码 | 欧美蜜桃一区二区三区| 91福利社在线观看| 欧美在线不卡视频| 色国产综合视频| 欧美性猛交xxxxxx富婆| 91浏览器打开| 一本色道综合亚洲| 欧美日韩中文字幕一区二区| 欧美日韩亚洲丝袜制服| 欧美一区二区三区免费| 精品国产91乱码一区二区三区| 精品国产制服丝袜高跟| 久久久久成人黄色影片| 国产精品电影一区二区| 亚洲欧洲韩国日本视频| 亚洲激情自拍偷拍| 日韩av中文字幕一区二区三区| 麻豆精品精品国产自在97香蕉| 国产综合色视频| 成人avav在线| 欧美日韩激情在线| 精品欧美一区二区在线观看| 久久久影视传媒| 亚洲精品成人精品456| 午夜久久电影网| 韩国视频一区二区| 色综合天天综合网天天狠天天| 欧美偷拍一区二区| 精品成人a区在线观看| 亚洲国产精品av| 日本午夜一区二区| 福利91精品一区二区三区| 色偷偷一区二区三区| 精品日韩在线一区| 亚洲特级片在线| 美腿丝袜在线亚洲一区| 成人免费不卡视频| 欧美高清精品3d| 国产精品妹子av| 日本强好片久久久久久aaa| 成人午夜av电影| 欧美日韩视频专区在线播放| 欧美国产激情二区三区| 三级欧美韩日大片在线看| 国产福利一区二区三区视频在线 | 久久夜色精品国产噜噜av| 樱花草国产18久久久久| 久久国产麻豆精品| 91浏览器入口在线观看| 欧美成人aa大片| 亚洲一区二区精品视频| 国产高清成人在线| 欧美一区二区在线免费播放 | 午夜日韩在线电影| 91免费看`日韩一区二区| 2020日本不卡一区二区视频| 五月激情六月综合| 色综合婷婷久久| 国产天堂亚洲国产碰碰| 日韩 欧美一区二区三区| 在线视频一区二区三区| 国产精品久久久久天堂| 国产精品系列在线观看| 欧美日韩综合不卡| 亚洲另类色综合网站| 成人小视频免费观看| 精品国产一区a| 五月天欧美精品| 91久久一区二区| 亚洲日本一区二区| 菠萝蜜视频在线观看一区| 久久综合999| 狠狠色丁香婷婷综合久久片| 91麻豆精品国产自产在线| 亚洲国产美女搞黄色| 欧美性生活一区| 国产精品久久久久一区二区三区共| 黄色小说综合网站| 久久午夜电影网| 国产精品亚洲视频| 久久精品一区四区| 成人免费毛片a| 国产精品动漫网站|