原地址 http://blog.csdn.net/mike_caoyong/article/details/7338160

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)类:

没有特殊的设置

原文链接: http://java.chinaitlab.com/base/...

画双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); 
        } 
}

JFreeChart API 说明(转)的更多相关文章

  1. JfreeChart使用(转载)

    http://www.cnblogs.com/xingyun/ http://www.huosen.net/archives/156.html(此篇除了struts2外,还介绍了servlet下Jfr ...

  2. JfreeChart的使用1

    JfreeChart的使用 来自: 克洛泽大地(DREG) 2008-07-03 14:35:11 先从网上找点介绍. 一.简介 WW 的发展使得基于因特网的应用程序不再局限于静态或者简单的动态内容提 ...

  3. Dubbo下载-从missing artifactId说起

    项目pom文件引入dubbo 报 missing artifactId https://github.com/dangdangdotcom/dubbox 从GitHub上直接下载解压包, 最好下载分支 ...

  4. 【Java EE 学习 74 上】【数据采集系统第六天】【使用Jfreechart的统计图实现】【Jfreechart的基本使用方法】

    之前已经实现了数据的采集,现在已经有了基本的数据,下一步就需要使用这些数据实现统计图的绘制了.这里使用Jfreechart实现这些统计图的绘制.首先看一下Jfreechart的基本用法,只有知道了它的 ...

  5. JfreeChart的使用

    前提:导入需要的2个jar文件,jcommon-版本号.jar,jfreechart-版本号.jar.可以去官网下载:http://sourceforge.net/projects/jfreechar ...

  6. 在线API文档

    http://www.ostools.net/apidocs A Ace akka2.0.2 Android Ant Apache CXF Apache HTTP服务器 ASM字节码操作 AutoCo ...

  7. jfreechart的使用案例

    一:下载需要的2个jar文件 jcommon-版本号.jar,jfreechart-版本号.jar,注意版本不要太高. 实例一:比较简单的application版本的饼图 /** * */ packa ...

  8. JFreeChart入学教程

    JFreeChart入学教程 2011-08-08 14:55:19|  分类: 技术篇 |举报 |字号 订阅   JFreeChart 是一组功能强大.灵活易用的Java绘图API,使用它可以生成多 ...

  9. jfreechart环形图完美实现

    邮件发送由于不支持js,项目只能在后台生成环形图,用jfreechart完全可以实现,即:RingPlot. 这就拿jfreechart生成的最终效果,依赖jar包jfreechart,如果有任何细节 ...

随机推荐

  1. 高射炮打蚊子丨用Visual Studio 2017写最初级的C语言程序

    众所周知,Visual Studio号称全宇宙最强的IDE(集成开发环境),简直可以“秒天秒地秒空气”.我们看着各种技术大会上,大神们在台上用VS演示Demo溜得飞起,然而对于一些非技术专业同学或者是 ...

  2. .NET中使用Redis:http://www.cnblogs.com/yangecnu/p/Introduct-Redis-in-DotNET.html

    .NET中使用Redis   Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http: ...

  3. Markdown_02_作图

    [TOC] 前言 一.序列图(Sequence) 序列图由 js-sequence提供支持,可以将代码块转成序列图 示例如下: ```sequence Title: Here is a title A ...

  4. COW写时复制

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  5. 【javascript基础】 广告嵌套document.write的非iframe方式的延迟加载

    用ControlJS优化阿里妈妈广告http://ued.taobao.com/blog/2011/03/controljs-alimama/让document.write的广告无阻塞的加载http: ...

  6. Windows下编译YouCompleteMe流程

    废话 生命在于折腾. 之前不用这个插件的原因: 因为要使这个插件起作用,前前后后需要下载几百MB(win下更是超过了1GB)的东西,包括了Clang编译器,ycmd的c艹源码还有ycm本身的vim s ...

  7. 制作smarty模版缓存文件

    <?php$p = 1;if(!empty($_GET["page"])){ $p = $_GET["page"];} $filename = " ...

  8. 对map参数进行排序

    /**     * Map转换成url参数 by csl     *     * @param map     * @param isSort 是否排序     * @return     */   ...

  9. PHP中查看PHP基本信息

    1.PHP_BINARY:查看PHP执行exe文件路径 <?php echo PHP_BINARY; ?> E:\PHP\php-7.1.3-Win32-VC14-x64\php.exe ...

  10. 05-python中函数的使用

    函数:就是让程序模块化,把具有独立功能的代码块当成一个整体封装成一个函数 首先打印一个佛主看看: print(" _ooOoo_ ") print(" o8888888o ...