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

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

?? logarithmicaxis.java

?? jfreechart1.0.1 jsp繪制圖表的開發(fā)包
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/* ===========================================================
 * 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.]
 *
 * --------------------
 * LogarithmicAxis.java
 * --------------------
 * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
 *
 * Original Author:  Michael Duffy / Eric Thomas;
 * Contributor(s):   David Gilbert (for Object Refinery Limited);
 *                   David M. O'Donnell;
 *                   Scott Sams;
 *
 * $Id: LogarithmicAxis.java,v 1.11.2.1 2005/10/25 20:37:34 mungady Exp $
 *
 * Changes
 * -------
 * 14-Mar-2002 : Version 1 contributed by Michael Duffy (DG);
 * 19-Apr-2002 : drawVerticalString() is now drawRotatedString() in
 *               RefineryUtilities (DG);
 * 23-Apr-2002 : Added a range property (DG);
 * 15-May-2002 : Modified to be able to deal with negative and zero values (via
 *               new 'adjustedLog10()' method);  occurrences of "Math.log(10)"
 *               changed to "LOG10_VALUE"; changed 'intValue()' to
 *               'longValue()' in 'refreshTicks()' to fix label-text value
 *               out-of-range problem; removed 'draw()' method; added
 *               'autoRangeMinimumSize' check; added 'log10TickLabelsFlag'
 *               parameter flag and implementation (ET);
 * 25-Jun-2002 : Removed redundant import (DG);
 * 25-Jul-2002 : Changed order of parameters in ValueAxis constructor (DG);
 * 16-Jul-2002 : Implemented support for plotting positive values arbitrarily
 *               close to zero (added 'allowNegativesFlag' flag) (ET).
 * 05-Sep-2002 : Updated constructor reflecting changes in the Axis class (DG);
 * 02-Oct-2002 : Fixed errors reported by Checkstyle (DG);
 * 08-Nov-2002 : Moved to new package com.jrefinery.chart.axis (DG);
 * 22-Nov-2002 : Bug fixes from David M. O'Donnell (DG);
 * 14-Jan-2003 : Changed autoRangeMinimumSize from Number --> double (DG);
 * 20-Jan-2003 : Removed unnecessary constructors (DG);
 * 26-Mar-2003 : Implemented Serializable (DG);
 * 08-May-2003 : Fixed plotting of datasets with lower==upper bounds when
 *               'minAutoRange' is very small; added 'strictValuesFlag'
 *               and default functionality of throwing a runtime exception
 *               if 'allowNegativesFlag' is false and any values are less
 *               than or equal to zero; added 'expTickLabelsFlag' and
 *               changed to use "1e#"-style tick labels by default
 *               ("10^n"-style tick labels still supported via 'set'
 *               method); improved generation of tick labels when range of
 *               values is small; changed to use 'NumberFormat.getInstance()'
 *               to create 'numberFormatterObj' (ET);
 * 14-May-2003 : Merged HorizontalLogarithmicAxis and
 *               VerticalLogarithmicAxis (DG);
 * 29-Oct-2003 : Added workaround for font alignment in PDF output (DG);
 * 07-Nov-2003 : Modified to use new NumberTick class (DG);
 * 08-Apr-2004 : Use numberFormatOverride if set - see patch 930139 (DG);
 * 11-Jan-2005 : Removed deprecated code in preparation for 1.0.0 release (DG);
 * 21-Apr-2005 : Added support for upper and lower margins; added
 *               get/setAutoRangeNextLogFlag() methods and changed
 *               default to 'autoRangeNextLogFlag'==false (ET);
 * 22-Apr-2005 : Removed refreshTicks() and fixed names and parameters for
 *               refreshHorizontalTicks() & refreshVerticalTicks();
 *               changed javadoc on setExpTickLabelsFlag() to specify
 *               proper default (ET);
 * 22-Apr-2005 : Renamed refreshHorizontalTicks --> refreshTicksHorizontal
 *               (and likewise the vertical version) for consistency with
 *               other axis classes (DG);
 *
 */

package org.jfree.chart.axis;

import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.List;

import org.jfree.chart.plot.Plot;
import org.jfree.chart.plot.ValueAxisPlot;
import org.jfree.data.Range;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.TextAnchor;

/**
 * A numerical axis that uses a logarithmic scale.
 *
 * @author Michael Duffy
 */
public class LogarithmicAxis extends NumberAxis {

    /** For serialization. */
    private static final long serialVersionUID = 2502918599004103054L;
    
    /** Useful constant for log(10). */
    public static final double LOG10_VALUE = Math.log(10.0);

    /** Smallest arbitrarily-close-to-zero value allowed. */
    public static final double SMALL_LOG_VALUE = 1e-100;

    /** Flag set true to allow negative values in data. */
    protected boolean allowNegativesFlag = false;

    /** Flag set true make axis throw exception if any values are
      * <= 0 and 'allowNegativesFlag' is false. */
    protected boolean strictValuesFlag = true;

    /** Number formatter for generating numeric strings. */
    protected final NumberFormat numberFormatterObj
        = NumberFormat.getInstance();

    /** Flag set true for "1e#"-style tick labels. */
    protected boolean expTickLabelsFlag = false;

    /** Flag set true for "10^n"-style tick labels. */
    protected boolean log10TickLabelsFlag = false;

    /** True to make 'autoAdjustRange()' select "10^n" values. */
    protected boolean autoRangeNextLogFlag = false;

    /** Helper flag for log axis processing. */
    protected boolean smallLogFlag = false;

    /**
     * Creates a new axis.
     *
     * @param label  the axis label.
     */
    public LogarithmicAxis(String label) {
        super(label);
        setupNumberFmtObj();      //setup number formatter obj
    }

    /**
     * Sets the 'allowNegativesFlag' flag; true to allow negative values
     * in data, false to be able to plot positive values arbitrarily close to
     * zero.
     *
     * @param flgVal  the new value of the flag.
     */
    public void setAllowNegativesFlag(boolean flgVal) {
        this.allowNegativesFlag = flgVal;
    }

    /**
     * Returns the 'allowNegativesFlag' flag; true to allow negative values
     * in data, false to be able to plot positive values arbitrarily close
     * to zero.
     *
     * @return The flag.
     */
    public boolean getAllowNegativesFlag() {
        return this.allowNegativesFlag;
    }

    /**
     * Sets the 'strictValuesFlag' flag; if true and 'allowNegativesFlag'
     * is false then this axis will throw a runtime exception if any of its
     * values are less than or equal to zero; if false then the axis will
     * adjust for values less than or equal to zero as needed.
     *
     * @param flgVal true for strict enforcement.
     */
    public void setStrictValuesFlag(boolean flgVal) {
        this.strictValuesFlag = flgVal;
    }

    /**
     * Returns the 'strictValuesFlag' flag; if true and 'allowNegativesFlag'
     * is false then this axis will throw a runtime exception if any of its
     * values are less than or equal to zero; if false then the axis will
     * adjust for values less than or equal to zero as needed.
     *
     * @return <code>true</code> if strict enforcement is enabled.
     */
    public boolean getStrictValuesFlag() {
        return this.strictValuesFlag;
    }

    /**
     * Sets the 'expTickLabelsFlag' flag.  If the 'log10TickLabelsFlag'
     * is false then this will set whether or not "1e#"-style tick labels
     * are used.  The default is to use regular numeric tick labels.
     *
     * @param flgVal true for "1e#"-style tick labels, false for
     * log10 or regular numeric tick labels.
     */
    public void setExpTickLabelsFlag(boolean flgVal) {
        this.expTickLabelsFlag = flgVal;
        setupNumberFmtObj();             //setup number formatter obj
    }

    /**
     * Returns the 'expTickLabelsFlag' flag.
     *
     * @return <code>true</code> for "1e#"-style tick labels,
     *         <code>false</code> for log10 or regular numeric tick labels.
     */
    public boolean getExpTickLabelsFlag() {
      return this.expTickLabelsFlag;
    }

    /**
     * Sets the 'log10TickLabelsFlag' flag.  The default value is false.
     *
     * @param flag true for "10^n"-style tick labels, false for "1e#"-style
     * or regular numeric tick labels.
     */
    public void setLog10TickLabelsFlag(boolean flag) {
        this.log10TickLabelsFlag = flag;
    }

    /**
     * Returns the 'log10TickLabelsFlag' flag.
     *
     * @return <code>true</code> for "10^n"-style tick labels,
     *         <code>false</code> for "1e#"-style or regular numeric tick
     *         labels.
     */
    public boolean getLog10TickLabelsFlag() {
        return this.log10TickLabelsFlag;
    }

    /**
     * Sets the 'autoRangeNextLogFlag' flag.  This determines whether or
     * not the 'autoAdjustRange()' method will select the next "10^n"
     * values when determining the upper and lower bounds.  The default
     * value is false.
     *
     * @param flag <code>true</code> to make the 'autoAdjustRange()'
     * method select the next "10^n" values, <code>false</code> to not.
     */
    public void setAutoRangeNextLogFlag(boolean flag) {
        this.autoRangeNextLogFlag = flag;
    }

    /**
     * Returns the 'autoRangeNextLogFlag' flag.
     *
     * @return <code>true</code> if the 'autoAdjustRange()' method will
     * select the next "10^n" values, <code>false</code> if not.
     */
    public boolean getAutoRangeNextLogFlag() {
        return this.autoRangeNextLogFlag;
    }

    /**
     * Overridden version that calls original and then sets up flag for
     * log axis processing.
     *
     * @param range  the new range.
     */
    public void setRange(Range range) {
        super.setRange(range);      // call parent method
        setupSmallLogFlag();        // setup flag based on bounds values
    }

    /**
     * Sets up flag for log axis processing.  Set true if negative values
     * not allowed and the lower bound is between 0 and 10.
     */
    protected void setupSmallLogFlag() {
        // set flag true if negative values not allowed and the
        // lower bound is between 0 and 10:
        double lowerVal = getRange().getLowerBound();
        this.smallLogFlag
            = (!this.allowNegativesFlag && lowerVal < 10.0 && lowerVal > 0.0);
    }

    /**
     * Sets up the number formatter object according to the
     * 'expTickLabelsFlag' flag.
     */
    protected void setupNumberFmtObj() {
        if (this.numberFormatterObj instanceof DecimalFormat) {
            //setup for "1e#"-style tick labels or regular
            // numeric tick labels, depending on flag:
            ((DecimalFormat) this.numberFormatterObj).applyPattern(
                this.expTickLabelsFlag ? "0E0" : "0.###"
            );
        }
    }

    /**
     * Returns the log10 value, depending on if values between 0 and
     * 1 are being plotted.  If negative values are not allowed and
     * the lower bound is between 0 and 10 then a normal log is
     * returned; otherwise the returned value is adjusted if the
     * given value is less than 10.
     *
     * @param val the value.
     *
     * @return log<sub>10</sub>(val).
     */
    protected double switchedLog10(double val) {
        return this.smallLogFlag ? Math.log(val)
                / LOG10_VALUE : adjustedLog10(val);
    }

    /**
     * Returns an adjusted log10 value for graphing purposes.  The first
     * adjustment is that negative values are changed to positive during
     * the calculations, and then the answer is negated at the end.  The
     * second is that, for values less than 10, an increasingly large
     * (0 to 1) scaling factor is added such that at 0 the value is
     * adjusted to 1, resulting in a returned result of 0.
     *
     * @param val  value for which log10 should be calculated.
     *
     * @return An adjusted log<sub>10</sub>(val).
     */
    public double adjustedLog10(double val) {
        boolean negFlag = (val < 0.0);
        if (negFlag) {
            val = -val;          // if negative then set flag and make positive
        }
        if (val < 10.0) {                // if < 10 then
            val += (10.0 - val) / 10;    //increase so 0 translates to 0
        }
        //return value; negate if original value was negative:
        return negFlag ? -(Math.log(val) / LOG10_VALUE)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久一留热品黄| 国产精品乡下勾搭老头1| 日韩精品一区在线观看| 成人免费高清在线观看| 午夜精品视频一区| 中文字幕一区在线| 日韩欧美一级在线播放| 欧美亚洲另类激情小说| 国产99久久久国产精品| 免费在线观看视频一区| 一区二区国产盗摄色噜噜| 欧美激情中文字幕一区二区| 欧美一区二区三区思思人| 91免费版在线| 成人av免费在线| 国产不卡在线播放| 美国毛片一区二区| 亚洲va国产天堂va久久en| 国产精品色一区二区三区| 日韩欧美国产一区二区三区| 欧美亚日韩国产aⅴ精品中极品| 国产91精品露脸国语对白| 精品一区二区精品| 日韩av电影天堂| 五月天网站亚洲| 亚洲资源在线观看| 亚洲激情校园春色| 亚洲婷婷在线视频| 亚洲视频 欧洲视频| 国产精品久久久久久亚洲毛片 | 久久精品夜色噜噜亚洲aⅴ| 欧美日韩国产免费| 欧美日韩免费电影| 欧洲精品一区二区| 在线精品视频一区二区三四| 在线观看日韩国产| 色偷偷久久人人79超碰人人澡| 91在线视频网址| 91亚洲精品久久久蜜桃网站| 99久久精品久久久久久清纯| 成人午夜又粗又硬又大| 粉嫩av一区二区三区粉嫩 | 国产成人精品影院| 国产精品乡下勾搭老头1| 国产91精品精华液一区二区三区| 国产一区二区三区四| 国产激情一区二区三区| 国产精品18久久久久久久久久久久| 国产在线国偷精品免费看| 精品一区二区免费视频| 国产成人小视频| 欧美成人三级在线| 精品国产乱码久久久久久老虎 | 日本一区二区三级电影在线观看| 国产人久久人人人人爽| 中文在线免费一区三区高中清不卡| 国产精品天美传媒沈樵| 国产精品久久久久久久久果冻传媒 | 日韩欧美激情在线| 26uuu久久综合| 国产精品理伦片| 亚洲免费在线视频一区 二区| 一区二区三区在线观看视频 | 成人美女视频在线观看| 91亚洲国产成人精品一区二区三| 在线视频中文字幕一区二区| 欧美日韩黄色影视| 久久久影视传媒| 一区二区三区在线免费播放| 免费观看在线综合| 成人福利视频在线| 欧美精品在线一区二区| 久久久亚洲精华液精华液精华液| 日韩美女视频19| 五月天亚洲精品| 成人一区二区三区中文字幕| 欧美视频一区二| 久久免费国产精品| 亚洲一区免费视频| 国产综合久久久久久鬼色| 99精品一区二区| 日韩欧美国产高清| 中文字幕在线观看一区二区| 日韩高清不卡一区二区| a亚洲天堂av| 日韩精品一区二区三区老鸭窝| 国产精品三级视频| 天天射综合影视| 成人黄色777网| 欧美一区二区三区喷汁尤物| 国产精品色哟哟| 极品美女销魂一区二区三区 | 午夜国产精品影院在线观看| 国产乱码字幕精品高清av | 亚洲欧洲av一区二区三区久久| 亚洲第一综合色| eeuss鲁片一区二区三区| 欧美一级黄色录像| 亚洲欧美偷拍卡通变态| 精品一区二区三区在线观看国产 | 2023国产精华国产精品| 亚洲第一福利视频在线| 波多野结衣在线aⅴ中文字幕不卡| 欧美一二三四区在线| 亚洲欧美一区二区三区极速播放| 九九久久精品视频| 欧美卡1卡2卡| 亚洲欧美成aⅴ人在线观看 | 欧美欧美午夜aⅴ在线观看| 中文字幕精品在线不卡| 麻豆专区一区二区三区四区五区| 91国偷自产一区二区开放时间 | 亚洲图片有声小说| 91麻豆自制传媒国产之光| 久久日韩粉嫩一区二区三区| 乱一区二区av| 555夜色666亚洲国产免| 亚洲成人www| 在线精品观看国产| 国产精品免费久久| 国产91清纯白嫩初高中在线观看| 日韩精品一区二区三区中文不卡| 日韩精品一级中文字幕精品视频免费观看 | 亚洲精品日日夜夜| www.日韩精品| 国产精品美女久久久久久 | 在线观看日产精品| 一区二区三区在线播放| 94-欧美-setu| 综合自拍亚洲综合图不卡区| 成人一区在线观看| 国产精品久久久久7777按摩| 成人免费视频视频| 中文字幕不卡的av| 91小视频在线| 1024成人网| 91视频.com| 一区二区视频在线| 欧美亚洲国产一卡| 五月天激情综合| 欧美一级欧美一级在线播放| 麻豆成人久久精品二区三区红| 日韩免费福利电影在线观看| 狠狠网亚洲精品| 国产日产欧美精品一区二区三区| 福利视频网站一区二区三区| 欧美国产日韩亚洲一区| 91视频一区二区| 一区二区三区高清| 欧美日韩精品一区二区三区| 美女视频黄免费的久久| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品久久久久天堂| 色视频欧美一区二区三区| 亚洲图片一区二区| 日韩美女一区二区三区| 国产传媒日韩欧美成人| 亚洲图片另类小说| 欧美裸体bbwbbwbbw| 国内欧美视频一区二区| 最新国产の精品合集bt伙计| 欧美日韩免费观看一区二区三区 | 亚洲国产裸拍裸体视频在线观看乱了| 777午夜精品免费视频| 久久精品国产精品亚洲精品| 欧美精彩视频一区二区三区| 色综合天天在线| 日韩电影免费一区| 国产夜色精品一区二区av| 99精品1区2区| 丝袜脚交一区二区| 欧美精品一区在线观看| 色综合久久久久网| 日本欧美在线观看| 国产精品久久三区| 欧美日韩卡一卡二| 国产69精品久久久久777| 亚洲宅男天堂在线观看无病毒| 精品国产一区二区三区久久久蜜月 | 欧美一级精品大片| 99在线热播精品免费| 久久国产精品免费| 亚洲黄色小视频| 国产亚洲午夜高清国产拍精品| 91国产丝袜在线播放| 国产精品自在欧美一区| 午夜伊人狠狠久久| 国产精品久久久久影院| 欧美变态tickling挠脚心| 91片黄在线观看| 国产一区二区成人久久免费影院| 亚洲一区二区三区影院| 国产婷婷色一区二区三区四区| 欧美日韩色综合| 9人人澡人人爽人人精品| 蜜桃久久久久久| 一区二区三区不卡视频| 国产日产亚洲精品系列| 欧美α欧美αv大片| 在线视频你懂得一区二区三区|