1. 程式人生 > >Jfreechart中文API及畫雙Y座標的折線圖

Jfreechart中文API及畫雙Y座標的折線圖

 JFreeChart目前是最好的java圖形解決方案,基本能夠解決目前的圖形方面的需求,下面給出的是JFreeChart API中文文件,同時也給出了官方英文的API連結。

    JFreeChart目前是最好的java圖形解決方案,基本能夠解決目前的圖形方面的需求,主要包括如下幾個方面:

    JFreeChart類:

    void setAntiAlias(boolean flag)字型模糊邊界

    void setBackgroundImage(Image image)背景圖片

    void setBackgroundImageAlignment(int alignment)背景圖片對齊方式(引數常量在org.jfree.ui.Align類中定義)

    void setBackgroundImageAlpha(float alpha)背景圖片透明度(0.0~1.0)

    void setBackgroundPaint(Paint paint)背景色

    void setBorderPaint(Paint paint)邊界線條顏色

    void setBorderStroke(Stroke stroke)邊界線條筆觸

    void setBorderVisible(boolean visible)邊界線條是否可見

    TextTitle類:

    void setFont(Font font)標題字型

    void setPaint(Paint paint)標題字型顏色

    void setText(String text)標題內容

    StandardLegend(Legend)類:

    void setBackgroundPaint(Paint paint)圖示背景色

    void setTitle(String title)圖示標題內容

    void setTitleFont(Font font)圖示標題字型

    void setBoundingBoxArcWidth(int arcWidth)圖示邊界圓角寬

    void setBoundingBoxArcHeight(int arcHeight)圖示邊界圓角高

    void setOutlinePaint(Paint paint)圖示邊界線條顏色

    void setOutlineStroke(Stroke stroke)圖示邊界線條筆觸

    void setDisplaySeriesLines(boolean flag)圖示項是否顯示橫線(折線圖有效)

    void setDisplaySeriesShapes(boolean flag)圖示項是否顯示形狀(折線圖有效)

    void setItemFont(Font font)圖示項字型

    void setItemPaint(Paint paint)圖示項字型顏色

    void setAnchor(int anchor)圖示在圖表中的顯示位置(引數常量在Legend類中定義)

    Axis類:

    void setVisible(boolean flag)座標軸是否可見

    void setAxisLinePaint(Paint paint)座標軸線條顏色(3D軸無效)

    void setAxisLineStroke(Stroke stroke)座標軸線條筆觸(3D軸無效)

    void setAxisLineVisible(boolean visible)座標軸線條是否可見(3D軸無效)

    void setFixedDimension(double dimension)(用於複合表中對多座標軸的設定)

    void setLabel(String label)座標軸標題

    void setLabelFont(Font font)座標軸標題字型

    void setLabelPaint(Paint paint)座標軸標題顏色

    void setLabelAngle(double angle)`座標軸標題旋轉角度(縱座標可以旋轉)

    void setTickLabelFont(Font font)座標軸標尺值字型

    void setTickLabelPaint(Paint paint)座標軸標尺值顏色

    void setTickLabelsVisible(boolean flag)座標軸標尺值是否顯示

    void setTickMarkPaint(Paint paint)座標軸標尺顏色

    void setTickMarkStroke(Stroke stroke)座標軸標尺筆觸

    void setTickMarksVisible(boolean flag)座標軸標尺是否顯示

    ValueAxis(Axis)類:

    void setAutoRange(boolean auto)自動設定資料軸資料範圍

    void setAutoRangeMinimumSize(double size)自動設定資料軸資料範圍時資料範圍的最小跨度

    void setAutoTickUnitSelection(boolean flag)資料軸的資料標籤是否自動確定(預設為true)

    void setFixedAutoRange(double length)資料軸固定資料範圍(設定100的話就是顯示MAXVALUE到MAXVALUE-100那段資料範圍)

    void setInverted(boolean flag)資料軸是否反向(預設為false)

    void setLowerMargin(double margin)資料軸下(左)邊距

    void setUpperMargin(double margin)資料軸上(右)邊距

    void setLowerBound(double min)資料軸上的顯示最小值

    void setUpperBound(double max)資料軸上的顯示最大值

    void setPositiveArrowVisible(boolean visible)是否顯示正向箭頭(3D軸無效)

    void setNegativeArrowVisible(boolean visible)是否顯示反向箭頭(3D軸無效)

    void setVerticalTickLabels(boolean flag)資料軸資料標籤是否旋轉到垂直

    void setStandardTickUnits(TickUnitSource source)資料軸的資料標籤(可以只顯示整數標籤,需要將AutoTickUnitSelection設false)

    NumberAxis(ValueAxis)類:

    void setAutoRangeIncludesZero(boolean flag)是否強制在自動選擇的資料範圍中包含0

    void setAutoRangeStickyZero(boolean flag)是否強制在整個資料軸中包含0,即使0不在資料範圍中

    void setNumberFormatOverride(NumberFormat formatter)資料軸資料標籤的顯示格式

    void setTickUnit(NumberTickUnit unit)資料軸的資料標籤(需要將AutoTickUnitSelection設false)

    DateAxis(ValueAxis)類:

    void setMaximumDate(Date maximumDate)日期軸上的最小日期

    void setMinimumDate(Date minimumDate)日期軸上的最大日期

    void setRange(Date lower,Date upper)日期軸範圍

    void setDateFormatOverride(DateFormat formatter)日期軸日期標籤的顯示格式

    void setTickUnit(DateTickUnit unit)日期軸的日期標籤(需要將AutoTickUnitSelection設false)

    void setTickMarkPosition(DateTickMarkPosition position)日期標籤位置(引數常量在org.jfree.chart.axis.DateTickMarkPosition類中定義)

    CategoryAxis(Axis)類:

    void setCategoryMargin(double margin)分類軸邊距

    void setLowerMargin(double margin)分類軸下(左)邊距

    void setUpperMargin(double margin)分類軸上(右)邊距

    void setVerticalCategoryLabels(boolean flag)分類軸標題是否旋轉到垂直

    void setMaxCategoryLabelWidthRatio(float ratio)分類軸分類標籤的最大寬度

    AbstractRenderer類:

    void setItemLabelAnchorOffset(double offset)資料標籤的與資料點的偏移

    void setItemLabelsVisible(boolean visible)資料標籤是否可見

    void setItemLabelFont(Font font)資料標籤的字型

    void setItemLabelPaint(Paint paint)資料標籤的字型顏色

    void setItemLabelPosition(ItemLabelPosition position)資料標籤位置

    void setPositiveItemLabelPosition(ItemLabelPosition position)正數標籤位置

    void setNegativeItemLabelPosition(ItemLabelPosition position)負數標籤位置

    void setOutLinePaint(Paint paint)圖形邊框的線條顏色

    void setOutLineStroke(Stroke stroke)圖形邊框的線條筆觸

    void setPaint(Paint paint)所有分類圖形的顏色

    void setShape(Shape shape)所有分類圖形的形狀(如折線圖的點)

    void setStroke(Stroke stroke)所有分類圖形的筆觸(如折線圖的線)

    void setSeriesItemLabelsVisible(int series,boolean visible)指定分類的資料標籤是否可見

    void setSeriesItemLabelFont(int series,Font font)指定分類的資料標籤的字型

    void setSeriesItemLabelPaint(int series,Paint paint)指定分類的資料標籤的字型顏色

    void setSeriesItemLabelPosition(int series,ItemLabelPosition position)資料標籤位置

    void setSeriesPositiveItemLabelPosition(int series,ItemLabelPosition position)正數標籤位置

    void setSeriesNegativeItemLabelPosition(int series,ItemLabelPosition position)負數標籤位置

    void setSeriesOutLinePaint(int series,Paint paint)指定分類的圖形邊框的線條顏色

    void setSeriesOutLineStroke(int series,Stroke stroke)指定分類的圖形邊框的線條筆觸

    void setSeriesPaint(int series,Paint paint)指定分類圖形的顏色

    void setSeriesShape(int series,Shape shape)指定分類圖形的形狀(如折線圖的點)

    void setSeriesStroke(int series,Stroke stroke)指定分類圖形的筆觸(如折線圖的線)

    AbstractCategoryItemRenderer(AbstractRenderer)類:

    void setLabelGenerator(CategoryLabelGenerator generator)資料標籤的格式

    void setToolTipGenerator(CategoryToolTipGenerator generator)MAP中滑鼠移上的顯示格式

    void setItemURLGenerator(CategoryURLGenerator generator)MAP中鑽取連結格式

    void setSeriesLabelGenerator(int series,CategoryLabelGenerator generator)指定分類的資料標籤的格式

    void setSeriesToolTipGenerator(int series,CategoryToolTipGenerator generator)指定分類的MAP中滑鼠移上的顯示格式

    void setSeriesItemURLGenerator(int series,CategoryURLGenerator generator)指定分類的MAP中鑽取連結格式

    BarRenderer(AbstractCategoryItemRenderer)類:

    void setDrawBarOutline(boolean draw)是否畫圖形邊框

    void setItemMargin(double percent)每個BAR之間的間隔

    void setMaxBarWidth(double percent)每個BAR的最大寬度

    void setMinimumBarLength(double min)最短的BAR長度,避免數值太小而顯示不出

    void setPositiveItemLabelPositionFallback(ItemLabelPosition position)無法在BAR中顯示的正數標籤位置

    void setNegativeItemLabelPositionFallback(ItemLabelPosition position)無法在BAR中顯示的負數標籤位置

    BarRenderer3D(BarRenderer)類:

    void setWallPaint(Paint paint)3D座標軸的牆體顏色

    StackedBarRenderer(BarRenderer)類:

    沒有特殊的設定

    StackedBarRenderer3D(BarRenderer3D)類:

    沒有特殊的設定

    GroupedStackedBarRenderer(StackedBarRenderer)類:

    void setSeriesToGroupMap(KeyToGroupMap map)將分類自由的對映成若干個組(KeyToGroupMap.mapKeyToGroup(series,group))

    LayeredBarRenderer(BarRenderer)類:

    void setSeriesBarWidth(int series,double width)設定每個分類的寬度(注意設定不要使某分類被覆蓋)

    WaterfallBarRenderer(BarRenderer)類:

    void setFirstBarPaint(Paint paint)第一個柱圖的顏色

    void setLastBarPaint(Paint paint)最後一個柱圖的顏色

    void setPositiveBarPaint(Paint paint)正值柱圖的顏色

    void setNegativeBarPaint(Paint paint)負值柱圖的顏色

    IntervalBarRenderer(BarRenderer)類:

    需要傳IntervalCategoryDataset作為資料來源

    GanttBarRenderer(IntervalBarRenderer)類:

    void setCompletePaint(Paint paint)完成進度顏色

    void setIncompletePaint(Paint paint)未完成進度顏色

    void setStartPercent(double percent)設定進度條在整條中的起始位置(0.0~1.0)

    void setEndPercent(double percent)設定進度條在整條中的結束位置(0.0~1.0)

    StatisticBarRenderer(BarRenderer)類:

    需要傳StatisticCategoryDataset作為資料來源

    LineAndShapeRenderer(AbstractCategoryItemRenderer)類:

    void setDrawLines(boolean draw)是否折線的資料點之間用線連

    void setDrawShapes(boolean draw)是否折線的資料點根據分類使用不同的形狀

    void setShapesFilled(boolean filled)所有分類是否填充資料點圖形

    void setSeriesShapesFilled(int series,boolean filled)指定分類是否填充資料點圖形

    void setUseFillPaintForShapeOutline(boolean use)指定是否填充資料點的Paint也被用於畫資料點形狀的邊框

    LevelRenderer(AbstractCategoryItemRenderer)類:

    void setItemMargin(double percent)每個分類之間的間隔

    void setMaxItemWidth(double percent)每個分類的最大寬度

    CategoryStepRenderer(AbstractCategoryItemRenderer)類:

    void setStagger(boolean shouldStagger)不同分類的圖是否交錯

    MinMaxCategoryRenderer(AbstractCategoryItemRenderer)類:

    void setDrawLines(boolean drawLines)是否在每個分類線間畫連線線

    void setGroupPaint(Paint groupPaint)一組圖形連線線的顏色

    void setGroupStroke(Stroke groupStroke)一組圖形連線線的筆觸

    void setMaxIcon(Icon maxIcon)最大值的ICON

    void setMinIcon(Icon minIcon)最小值的ICON

    void setObjectIcon(Icon objectIcon)所有值的ICON

    AreaRender(AbstractCategoryItemRenderer)類:

    沒有特殊的設定

    StackedAreaRender(AreaRender)類:

    沒有特殊的設定

    關鍵就是用好Renderer這個類了,再貼個例子:

    String sFont = "宋體";   chart.setBorderVisible(true);   chart.setBorderPaint(new Color(0xFF,0x66,0x00));   chart.setBackgroundPaint(new Color(0xFF,0xF3,0xDE));   chart.getTitle()。setPaint(Color.red);   chart.getTitle()。setFont(new Font(sFont,Font.BOLD,14));    //設定Plot,不顯示所有網格   ((CategoryPlot)chart.getPlot())。setOutlinePaint(null);   ((CategoryPlot)chart.getPlot())。setDomainGridlinesVisible(false);   ((CategoryPlot)chart.getPlot())。setRangeGridlinesVisible(false);    //設定橫軸字型,設定橫軸軸線不可見,隱藏縱軸   ((CategoryPlot)chart.getPlot())。getDomainAxis()。setTickLabelFont(new Font(sFont,Font.PLAIN,12));   ((CategoryPlot)chart.getPlot())。getDomainAxis()。setAxisLineVisible(false);   ((CategoryPlot)chart.getPlot())。getRangeAxis()。setVisible(false);    //採用BarRenderer作為表示器   BarRenderer renderer = new BarRenderer();   renderer.setPaint(new GradientPaint(0.0f,0.0f,Color.orange,0.0f,0.0f,Color.yellow));   renderer.setOutlinePaint(Color.orange);   renderer.setDrawBarOutline(true);    //在條中央顯示投票數值   renderer.setItemLabelAnchorOffset(-20.0f);   renderer.setLabelGenerator(new StandardCategoryLabelGenerator("{2}",new DecimalFormat()));   renderer.setPositiveItemLabelPosition(new ItemLabelPosition());   renderer.setItemLabelsVisible(true);

    pie charts (2D and 3D):餅圖(平面和立體)

    bar charts (regular and stacked, with an optional 3D effect):柱狀圖

    line and area charts:曲線圖

    scatter plots and bubble charts

    time series, high/low/open/close charts and candle stick charts:時序圖

    combination charts:複合圖

    Pareto charts

    Gantt charts:甘特圖

    wind plots, meter charts and symbol charts

    wafer map charts

    (態圖表,餅圖(二維和三維) , 柱狀圖 (水平,垂直),線圖,點圖,時間變化圖,甘特圖, 股票行情圖,混和圖, 溫度計圖, 刻度圖等常用商用圖表)

    圖形可以匯出成PNG和JPEG格式,同時還可以與PDF和EXCEL關聯

    JFreeChart核心類庫介紹:

    研究jfreechart原始碼發現原始碼的主要由兩個大的包組成:org.jfree.chart,org.jfree.data。其中前者主要與圖形本身有關,後者與圖形顯示的資料有關。

    核心類主要有:

    org.jfree.chart.JFreeChart:圖表物件,任何型別的圖表的最終表現形式都是在該物件進行一些屬性的定製。JFreeChart引擎本身提供了一個工廠類用於建立不同型別的圖表物件

    org.jfree.data.category.XXXDataSet:資料集物件,用於提供顯示圖表所用的資料。根據不同型別的圖表對應著很多型別的資料集物件類

    org.jfree.chart.plot.XXXPlot:圖表區域物件,基本上這個物件決定著什麼樣式的圖表,建立該物件的時候需要Axis、Renderer以及資料集物件的支援

    org.jfree.chart.axis.XXXAxis:用於處理圖表的兩個軸:縱軸和橫軸

    org.jfree.chart.render.XXXRender:負責如何顯示一個圖表物件

    org.jfree.chart.urls.XXXURLGenerator:用於生成Web圖表中每個專案的滑鼠點選連結

    XXXXXToolTipGenerator:用於生成圖象的幫助提示,不同型別圖表對應不同型別的工具提示類

    JFreeChart類:

    void setAntiAlias(boolean flag) 字型模糊邊界

    void setBackgroundImage(Image image) 背景圖片

    void setBackgroundImageAlignment(int alignment) 背景圖片對齊方式(引數常量在org.jfree.ui.Align類中定義)

    void setBackgroundImageAlpha(float alpha) 背景圖片透明度(0.0~1.0)

    void setBackgroundPaint(Paint paint) 背景色

    void setBorderPaint(Paint paint) 邊界線條顏色

    void setBorderStroke(Stroke stroke) 邊界線條筆觸

    void setBorderVisible(boolean visible) 邊界線條是否可見

    TextTitle類:

    void setFont(Font font) 標題字型

    void setPaint(Paint paint) 標題字型顏色

    void setText(String text) 標題內

    StandardLegend(Legend)類:

    void setBackgroundPaint(Paint paint) 圖示背景色

    void setTitle(String title) 圖示標題內容

    void setTitleFont(Font font) 圖示標題字型

    void setBoundingBoxArcWidth(int arcWidth) 圖示邊界圓角寬

    void setBoundingBoxArcHeight(int arcHeight) 圖示邊界圓角高

    void setOutlinePaint(Paint paint) 圖示邊界線條顏色

    void setOutlineStroke(Stroke stroke) 圖示邊界線條筆觸

    void setDisplaySeriesLines(boolean flag) 圖示項是否顯示橫線(折線圖有效)

    void setDisplaySeriesShapes(boolean flag) 圖示項是否顯示形狀(折線圖有效)

    void setItemFont(Font font) 圖示項字型

    void setItemPaint(Paint paint) 圖示項字型顏色

    void setAnchor(int anchor) 圖示在圖表中的顯示位置(引數常量在Legend類中定義)

    Axis類:

    void setVisible(boolean flag) 座標軸是否可見

    void setAxisLinePaint(Paint paint) 座標軸線條顏色(3D軸無效)

    void setAxisLineStroke(Stroke stroke) 座標軸線條筆觸(3D軸無效)

    void setAxisLineVisible(boolean visible) 座標軸線條是否可見(3D軸無效)

    void setFixedDimension(double dimension) (用於複合表中對多座標軸的設定)

    void setLabel(String label) 座標軸標題

    void setLabelFont(Font font) 座標軸標題字型

    void setLabelPaint(Paint paint) 座標軸標題顏色

    void setLabelAngle(double angle)` 座標軸標題旋轉角度(縱座標可以旋轉)

    void setTickLabelFont(Font font) 座標軸標尺值字型

    void setTickLabelPaint(Paint paint) 座標軸標尺值顏色

    void setTickLabelsVisible(boolean flag) 座標軸標尺值是否顯示

    void setTickMarkPaint(Paint paint) 座標軸標尺顏色

    void setTickMarkStroke(Stroke stroke) 座標軸標尺筆觸

    void setTickMarksVisible(boolean flag) 座標軸標尺是否顯示

    ValueAxis(Axis)類:

    void setAutoRange(boolean auto) 自動設定資料軸資料範圍

    void setAutoRangeMinimumSize(double size) 自動設定資料軸資料範圍時資料範圍的最小跨度

    void setAutoTickUnitSelection(boolean flag) 資料軸的資料標籤是否自動確定(預設為true)

    void setFixedAutoRange(double length) 資料軸固定資料範圍(設定100的話就是顯示MAXVALUE到MAXVALUE-100那段資料範圍)

    void setInverted(boolean flag) 資料軸是否反向(預設為false)

    void setLowerMargin(double margin) 資料軸下(左)邊距

    void setUpperMargin(double margin) 資料軸上(右)邊距

    void setLowerBound(double min) 資料軸上的顯示最小值

    void setUpperBound(double max) 資料軸上的顯示最大值

    void setPositiveArrowVisible(boolean visible) 是否顯示正向箭頭(3D軸無效)

    void setNegativeArrowVisible(boolean visible) 是否顯示反向箭頭(3D軸無效)

    void setVerticalTickLabels(boolean flag) 資料軸資料標籤是否旋轉到垂直

    void setStandardTickUnits(TickUnitSource source) 資料軸的資料標籤(可以只顯示整數標籤,需要將AutoTickUnitSelection設false)

    NumberAxis(ValueAxis)類:

    void setAutoRangeIncludesZero(boolean flag) 是否強制在自動選擇的資料範圍中包含0

    void setAutoRangeStickyZero(boolean flag) 是否強制在整個資料軸中包含0,即使0不在資料範圍中

    void setNumberFormatOverride(NumberFormat formatter) 資料軸資料標籤的顯示格式

    void setTickUnit(NumberTickUnit unit) 資料軸的資料標籤(需要將AutoTickUnitSelection設false)

    DateAxis(ValueAxis)類:

    void setMaximumDate(Date maximumDate) 日期軸上的最小日期

    void setMinimumDate(Date minimumDate) 日期軸上的最大日期

    void setRange(Date lower,Date upper) 日期軸範圍

    void setDateFormatOverride(DateFormat formatter) 日期軸日期標籤的顯示格式

    void setTickUnit(DateTickUnit unit) 日期軸的日期標籤(需要將AutoTickUnitSelection設false)

    void setTickMarkPosition(DateTickMarkPosition position) 日期標籤位置(引數常量在org.jfree.chart.axis.DateTickMarkPosition類中定義)

    CategoryAxis(Axis)類:

    void setCategoryMargin(double margin) 分類軸邊距

    void setLowerMargin(double margin) 分類軸下(左)邊距

    void setUpperMargin(double margin) 分類軸上(右)邊距

    void setVerticalCategoryLabels(boolean flag) 分類軸標題是否旋轉到垂直

    void setMaxCategoryLabelWidthRatio(float ratio) 分類軸分類標籤的最大寬度

    Plot類:

    void setBackgroundImage(Image image) 資料區的背景圖片

    void setBackgroundImageAlignment(int alignment) 資料區的背景圖片對齊方式(引數常量在org.jfree.ui.Align類中定義)

    void setBackgroundPaint(Paint paint) 資料區的背景圖片背景色

    void setBackgroundAlpha(float alpha) 資料區的背景透明度(0.0~1.0)

    void setForegroundAlpha(float alpha) 資料區的前景透明度(0.0~1.0)

    void setDataAreaRatio(double ratio) 資料區佔整個圖表區的百分比

    void setOutLinePaint(Paint paint) 資料區的邊界線條顏色

    void setOutLineStroke(Stroke stroke) 資料區的邊界線條筆觸

    void setNoDataMessage(String message) 沒有資料時顯示的訊息

    void setNoDataMessageFont(Font font) 沒有資料時顯示的訊息字型

    void setNoDataMessagePaint(Paint paint) 沒有資料時顯示的訊息顏色

    CategoryPlot(Plot)類:

    void setDataset(CategoryDataset dataset) 資料區的2維資料表

    void setColumnRenderingOrder(SortOrder order) 資料分類的排序方式

    void setAxisOffset(Spacer offset) 座標軸到資料區的間距

    void setOrientation(PlotOrientation orientation) 資料區的方向(PlotOrientation.HORIZONTAL或PlotOrientation.VERTICAL)

    void setDomainAxis(CategoryAxis axis) 資料區的分類軸

    void setDomainAxisLocation(AxisLocation location) 分類軸的位置(引數常量在org.jfree.chart.axis.AxisLocation類中定義)

    void setDomainGridlinesVisible(boolean visible) 分類軸網格是否可見

    void setDomainGridlinePaint(Paint paint) 分類軸網格線條顏色

    void setDomainGridlineStroke(Stroke stroke) 分類軸網格線條筆觸

    void setRangeAxis(ValueAxis axis) 資料區的資料軸

    void setRangeAxisLocation(AxisLocation location) 資料軸的位置(引數常量在org.jfree.chart.axis.AxisLocation類中定義)

    void setRangeGridlinesVisible(boolean visible) 資料軸網格是否可見

    void setRangeGridlinePaint(Paint paint) 資料軸網格線條顏色

    void setRangeGridlineStroke(Stroke stroke) 資料軸網格線條筆觸

    void setRenderer(CategoryItemRenderer renderer) 資料區的表示者(詳見Renderer組)

    void addAnnotation(CategoryAnnotation annotation) 給資料區加一個註釋

    void addRangeMarker(Marker marker,Layer layer) 給資料區加一個數值範圍區域

    PiePlot(Plot)類:

    void setDataset(PieDataset dataset) 資料區的1維資料表

    void setIgnoreNullValues(boolean flag) 忽略無值的分類

    void setCircular(boolean flag) 餅圖是否一定是正圓

    void setStartAngle(double angle) 餅圖的初始角度

    void setDirection(Rotation direction) 餅圖的旋轉方向

    void setExplodePercent(int section,double percent) 抽取的那塊(1維資料表的分類下標)以及抽取出來的距離(0.0~1.0),3D餅圖無效

    void setLabelBackgroundPaint(Paint paint) 分類標籤的底色

    void setLabelFont(Font font) 分類標籤的字型

    void setLabelPaint(Paint paint) 分類標籤的字型顏色

    void setLabelLinkMargin(double margin) 分類標籤與圖的連線線邊距

    void setLabelLinkPaint(Paint paint) 分類標籤與圖的連線線顏色

    void setLabelLinkStroke(Stroke stroke) 分類標籤與圖的連線線筆觸

    void setLabelOutlinePaint(Paint paint) 分類標籤邊框顏色

    void setLabelOutlineStroke(Paint paint) 分類標籤邊框筆觸

    void setLabelShadowPaint(Paint paint) 分類標籤陰影顏色

    void setMaximumLabelWidth(double width) 分類標籤的最大長度(0.0~1.0)

    void setPieIndex(int index) 餅圖的索引(複合餅圖中用到)

    void setSectionOutlinePaint(int section,Paint paint) 指定分類餅的邊框顏色

    void setSectionOutlineStroke(int section,Stroke stroke) 指定分類餅的邊框筆觸

    void setSectionPaint(int section,Paint paint) 指定分類餅的顏色

    void setShadowPaint(Paint paint) 餅圖的陰影顏色

    void setShadowXOffset(double offset) 餅圖的陰影相對圖的水平偏移

    void setShadowYOffset(double offset) 餅圖的陰影相對圖的垂直偏移

    void setLabelGenerator(PieSectionLabelGenerator generator) 分類標籤的格式,設定成null則整個標籤包括連線線都不顯示

    void setToolTipGenerator(PieToolTipGenerator generator) MAP中滑鼠移上的顯示格式

    void setURLGenerator(PieURLGenerator generator) MAP中鑽取連結格式

    PiePlot3D(PiePlot)類:

    void setDepthFactor(double factor) 3D餅圖的Z軸高度(0.0~1.0)

    MultiplePiePlot(Plot)類:

    void setLimit(double limit) 每個餅圖之間的資料關聯(詳細比較複雜)

    void setPieChart(JFreeChart pieChart) 每個餅圖的顯示方式(見JFreeChart類個PiePlot類)

    AbstractRenderer類:

    void setItemLabelAnchorOffset(double offset) 資料標籤的與資料點的偏移

    void setItemLabelsVisible(boolean visible) 資料標籤是否可見

    void setItemLabelFont(Font font) 資料標籤的字型

    void setItemLabelPaint(Paint paint) 資料標籤的字型顏色

    void setItemLabelPosition(ItemLabelPosition position) 資料標籤位置

    void setPositiveItemLabelPosition(ItemLabelPosition position) 正數標籤位置

    void setNegativeItemLabelPosition(ItemLabelPosition position) 負數標籤位置

    void setOutLinePaint(Paint paint) 圖形邊框的線條顏色

    void setOutLineStroke(Stroke stroke) 圖形邊框的線條筆觸

    void setPaint(Paint paint) 所有分類圖形的顏色

    void setShape(Shape shape) 所有分類圖形的形狀(如折線圖的點)

    void setStroke(Stroke stroke) 所有分類圖形的筆觸(如折線圖的線)

    void setSeriesItemLabelsVisible(int series,boolean visible) 指定分類的資料標籤是否可見

    void setSeriesItemLabelFont(int series,Font font) 指定分類的資料標籤的字型

    void setSeriesItemLabelPaint(int series,Paint paint) 指定分類的資料標籤的字型顏色

    void setSeriesItemLabelPosition(int series,ItemLabelPosition position) 資料標籤位置

    void setSeriesPositiveItemLabelPosition(int series,ItemLabelPosition position) 正數標籤位置

    void setSeriesNegativeItemLabelPosition(int series,ItemLabelPosition position) 負數標籤位置

    void setSeriesOutLinePaint(int series,Paint paint) 指定分類的圖形邊框的線條顏色

    void setSeriesOutLineStroke(int series,Stroke stroke) 指定分類的圖形邊框的線條筆觸

    void setSeriesPaint(int series,Paint paint) 指定分類圖形的顏色

    void setSeriesShape(int series,Shape shape) 指定分類圖形的形狀(如折線圖的點)

    void setSeriesStroke(int series,Stroke stroke) 指定分類圖形的筆觸(如折線圖的線)

    AbstractCategoryItemRenderer(AbstractRenderer)類:

    void setLabelGenerator(CategoryLabelGenerator generator) 資料標籤的格式

    void setToolTipGenerator(CategoryToolTipGenerator generator) MAP中滑鼠移上的顯示格式

    void setItemURLGenerator(CategoryURLGenerator generator) MAP中鑽取連結格式

    void setSeriesLabelGenerator(int series,CategoryLabelGenerator generator) 指定分類的資料標籤的格式

    void setSeriesToolTipGenerator(int series,CategoryToolTipGenerator generator) 指定分類的MAP中滑鼠移上的顯示格式

    void setSeriesItemURLGenerator(int series,CategoryURLGenerator generator) 指定分類的MAP中鑽取連結格式

    BarRenderer(AbstractCategoryItemRenderer)類:

    void setDrawBarOutline(boolean draw) 是否畫圖形邊框

    void setItemMargin(double percent) 每個BAR之間的間隔

    void setMaxBarWidth(double percent) 每個BAR的最大寬度

    void setMinimumBarLength(double min) 最短的BAR長度,避免數值太小而顯示不出

    void setPositiveItemLabelPositionFallback(ItemLabelPosition position) 無法在BAR中顯示的正數標籤位置

    void setNegativeItemLabelPositionFallback(ItemLabelPosition position) 無法在BAR中顯示的負數標籤位置

    BarRenderer3D(BarRenderer)類:

    void setWallPaint(Paint paint) 3D座標軸的牆體顏色

    StackedBarRenderer(BarRenderer)類:

    沒有特殊的設定

    StackedBarRenderer3D(BarRenderer3D)類:

    沒有特殊的設定

    GroupedStackedBarRenderer(StackedBarRenderer)類:

    void setSeriesToGroupMap(KeyToGroupMap map) 將分類自由的對映成若干個組(KeyToGroupMap.mapKeyToGroup(series,group))

    LayeredBarRenderer(BarRenderer)類:

    void setSeriesBarWidth(int series,double width) 設定每個分類的寬度(注意設定不要使某分類被覆蓋)

    WaterfallBarRenderer(BarRenderer)類:

    void setFirstBarPaint(Paint paint) 第一個柱圖的顏色

    void setLastBarPaint(Paint paint) 最後一個柱圖的顏色

    void setPositiveBarPaint(Paint paint) 正值柱圖的顏色

    void setNegativeBarPaint(Paint paint) 負值柱圖的顏色

    IntervalBarRenderer(BarRenderer)類:

    需要傳IntervalCategoryDataset作為資料來源

    GanttBarRenderer(IntervalBarRenderer)類:

    void setCompletePaint(Paint paint) 完成進度顏色

    void setIncompletePaint(Paint paint) 未完成進度顏色

    void setStartPercent(double percent) 設定進度條在整條中的起始位置(0.0~1.0)

    void setEndPercent(double percent) 設定進度條在整條中的結束位置(0.0~1.0)

    StatisticBarRenderer(BarRenderer)類:

    需要傳StatisticCategoryDataset作為資料來源

    LineAndShapeRenderer(AbstractCategoryItemRenderer)類:

    void setDrawLines(boolean draw) 是否折線的資料點之間用線連

    void setDrawShapes(boolean draw) 是否折線的資料點根據分類使用不同的形狀

    void setShapesFilled(boolean filled) 所有分類是否填充資料點圖形

    void setSeriesShapesFilled(int series,boolean filled) 指定分類是否填充資料點圖形

    void setUseFillPaintForShapeOutline(boolean use) 指定是否填充資料點的Paint也被用於畫資料點形狀的邊框

    LevelRenderer(AbstractCategoryItemRenderer)類:

    void setItemMargin(double percent) 每個分類之間的間隔

    void setMaxItemWidth(double percent) 每個分類的最大寬度

    CategoryStepRenderer(AbstractCategoryItemRenderer)類:

    void setStagger(boolean shouldStagger) 不同分類的圖是否交錯

    MinMaxCategoryRenderer(AbstractCategoryItemRenderer)類:

    void setDrawLines(boolean drawLines) 是否在每個分類線間畫連線線

    void setGroupPaint(Paint groupPaint) 一組圖形連線線的顏色

    void setGroupStroke(Stroke groupStroke) 一組圖形連線線的筆觸

    void setMaxIcon(Icon maxIcon) 最大值的ICON

    void setMinIcon(Icon minIcon) 最小值的ICON

    void setObjectIcon(Icon objectIcon) 所有值的ICON

    AreaRender(AbstractCategoryItemRenderer)類:

    沒有特殊的設定

    StackedAreaRender(AreaRender)類:

    沒有特殊的設定

畫雙Y座標的折線圖
程式碼如下:

package   demo;

import   java.awt.Color;
import   javax.swing.JPanel;
import   org.jfree.chart.*;
import   org.jfree.chart.annotations.XYPointerAnnotation;
import   org.jfree.chart.axis.NumberAxis;
import   org.jfree.chart.block.*;
import   org.jfree.chart.labels.StandardXYToolTipGenerator;
import   org.jfree.chart.plot.PlotOrientation;
import   org.jfree.chart.plot.XYPlot;
import   org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import   org.jfree.chart.title.CompositeTitle;
import   org.jfree.chart.title.LegendTitle;
import   org.jfree.data.xy.*;
import   org.jfree.ui.*;

public   class   AnnotationDemo2   extends   ApplicationFrame
{

        public   AnnotationDemo2(String   s)
        {
                super(s);
                setContentPane(createDemoPanel());
        }

        private   static   XYDataset   createDataset1()
        {
                XYSeries   xyseries   =   new   XYSeries( "Random   Data   1 ");
                xyseries.add(1.0D,   181.80000000000001D);
                xyseries.add(2D,   167.30000000000001D);
                xyseries.add(3D,   153.80000000000001D);
                xyseries.add(4D,   167.59999999999999D);
                xyseries.add(5D,   158.80000000000001D);
                xyseries.add(6D,   148.30000000000001D);
                xyseries.add(7D,   153.90000000000001D);
                xyseries.add(8D,   142.69999999999999D);
                xyseries.add(9D,   123.2D);
                xyseries.add(10D,   131.80000000000001D);
                xyseries.add(11D,   139.59999999999999D);
                xyseries.add(12D,   142.90000000000001D);
                xyseries.add(13D,   138.69999999999999D);
                xyseries.add(14D,   137.30000000000001D);
                xyseries.add(15D,   143.90000000000001D);
                xyseries.add(16D,   139.80000000000001D);
                xyseries.add(17D,   137D);
                xyseries.add(18D,   132.80000000000001D);
                XYSeriesCollection   xyseriescollection   =   new   XYSeriesCollection();
                xyseriescollection.addSeries(xyseries);
                return   xyseriescollection;
        }

        private   static   XYDataset   createDataset2()
        {
                XYSeries   xyseries   =   new   XYSeries( "Random   Data   2 ");
                xyseries.add(1.0D,   429.60000000000002D);
                xyseries.add(2D,   323.19999999999999D);
                xyseries.add(3D,   417.19999999999999D);
                xyseries.add(4D,   624.10000000000002D);
                xyseries.add(5D,   422.60000000000002D);
                xyseries.add(6D,   619.20000000000005D);
                xyseries.add(7D,   416.5D);
                xyseries.add(8D,   512.70000000000005D);
                xyseries.add(9D,   501.5D);
                xyseries.add(10D,   306.10000000000002D);
                xyseries.add(11D,   410.30000000000001D);
                xyseries.add(12D,   511.69999999999999D);
                xyseries.add(13D,   611D);
                xyseries.add(14D,   709.60000000000002D);
                xyseries.add(15D,   613.20000000000005D);
                xyseries.add(16D,   711.60000000000002D);
                xyseries.add(17D,   708.79999999999995D);
                xyseries.add(18D,   501.60000000000002D);
                XYSeriesCollection   xyseriescollection   =   new   XYSeriesCollection();
                xyseriescollection.addSeries(xyseries);
                return   xyseriescollection;
        }

        private   static   JFreeChart   createChart()
        {
                XYDataset   xydataset   =   createDataset1();
                JFreeChart   jfreechart   =   ChartFactory.createXYLineChart( "Annotation   Demo   2 ",   "Date ",   "Price   Per   Unit ",   xydataset,   PlotOrientation.VERTICAL,   false,   true,   false);
                XYPlot   xyplot   =   (XYPlot)jfreechart.getPlot();
                NumberAxis   numberaxis   =   (NumberAxis)xyplot.getRangeAxis();
                numberaxis.setAutoRangeIncludesZero(false);
                NumberAxis   numberaxis1   =   new   NumberAxis( "Secondary ");
                numberaxis1.setAutoRangeIncludesZero(false);
                xyplot.setRangeAxis(1,   numberaxis1);  //關鍵程式碼
                xyplot.setDataset(1,   createDataset2()); //關鍵程式碼
                xyplot.mapDatasetToRangeAxis(1,   1);
                XYLineAndShapeRenderer   xylineandshaperenderer   =   (XYLineAndShapeRenderer)xyplot.getRenderer();
                xylineandshaperenderer.setToolTipGenerator(StandardXYToolTipGenerator.getTimeSeriesInstance());
                xylineandshaperenderer.setShapesVisible(true);
                xylineandshaperenderer.setShapesFilled(true);
                XYPointerAnnotation   xypointerannotation   =   new   XYPointerAnnotation( "Annotation   1   (2.0,   167.3) ",   2D,   167.30000000000001D,   -0.78539816339744828D);
                xypointerannotation.setTextAnchor(TextAnchor.BOTTOM_LEFT);
                xypointerannotation.setPaint(Color.red);
                xypointerannotation.setArrowPaint(Color.red);
                xylineandshaperenderer.addAnnotation(xypointerannotation);
                XYLineAndShapeRenderer   xylineandshaperenderer1   =   new   XYLineAndShapeRenderer(true,   true);
                xylineandshaperenderer1.setSeriesPaint(0,   Color.black);
                xylineandshaperenderer.setToolTipGenerator(StandardXYToolTipGenerator.getTimeSeriesInstance());
                XYPointerAnnotation   xypointerannotation1   =   new   XYPointerAnnotation( "Annotation   2   (15.0,   613.2) ",   15D,   613.20000000000005D,   1.5707963267948966D);
                xypointerannotation1.setTextAnchor(TextAnchor.TOP_CENTER);
                xylineandshaperenderer1.addAnnotation(xypointerannotation1);
                xyplot.setRenderer(1,   xylineandshaperenderer1);
                LegendTitle   legendtitle   =   new   LegendTitle(xylineandshaperenderer);
                LegendTitle   legendtitle1   =   new   LegendTitle(xylineandshaperenderer1);
                BlockContainer   blockcontainer   =   new   BlockContainer(new   BorderArrangement());
                blockcontainer.add(legendtitle,   RectangleEdge.LEFT);
                blockcontainer.add(legendtitle1,   RectangleEdge.RIGHT);
                blockcontainer.add(new   EmptyBlock(2000D,   0.0D));
                CompositeTitle   compositetitle   =   new   CompositeTitle(blockcontainer);
                compositetitle.setPosition(RectangleEdge.BOTTOM);
                jfreechart.addSubtitle(compositetitle);
                return   jfreechart;
        }

        public   static   JPanel   createDemoPanel()
        {
                JFreeChart   jfreechart   =   createChart();
                return   new   ChartPanel(jfreechart);
        }

        public   static   void   main(String   args[])
        {
                AnnotationDemo2   annotationdemo2   =   new   AnnotationDemo2( "Annotation   Demo   2 ");
                annotationdemo2.pack();
                RefineryUtilities.centerFrameOnScreen(annotationdemo2);
                annotationdemo2.setVisible(true);
        }
}