`

[转载]JFreeChart创建图表制作过程及支持

阅读更多
一般的创建图表的过程为:

1. 从数据库里读取数据

2. 将数据保存到图表对应的数据集对象中

3. 创建坐标轴对象

4. 创建Renderer对象

5. 创建Plot对象

6. 创建JfreeChart对象

7. 生成图片文件(或者二进制流)

JFreeChart支持的图表类型总结

图表类型         工厂类方法             数据集类型             备注 
柱状图           createBarChart         CategoryDataset   
柱状图3D         createBarChart3D       CategoryDataset   
饼图             createPieChart         PieDataset   
饼图3D           createPieChart3D       PieDataset   
线图             createLineChart         CategoryDataset   
线图3D           createLineChart3D       CategoryDataset   
复合饼图         createMultiplePieChart CategoryDataset       需要设置TableOrder 
复合饼图3D       createMultiplePieChart3D CategoryDataset   
环形图           createRingChart         PieDataset   
瀑布图           createWaterfallChart   CategoryDataset       柱图特殊形式 
面积图           createAreaChart         CategoryDataset   
散点图           createScatterPlot       XYSeriesCollection   
组织图           createHistogram         XYSeriesCollection   
数据点阶梯图     createXYStepChart       XYSeriesCollection   
堆积面积图       createStackedAreaChart CategoryDataset   
堆积柱状图       createStackedBarChart   CategoryDataset   
堆积柱状图3D     createStackedBarChart3D CategoryDataset   
数据点线图       createXYLineChart       XYSeriesCollection   
数据点面积图     createXYAreaChart       XYSeriesCollection   
数据点阶梯面积图 createXYStepAreaChart   XYSeriesCollection   
堆积数据点面积图 createStackedXYAreaChart TableXYDataset   
时序图           createTimeSeriesChart   XYDataset   
晶片图           createWaferMapChart     WaferMapDataset   
WindPlot         createWindPlot         WindDataset   
极线图           createPolarChart       XYDataset   
气泡图           createBubbleChart       XYZDataset   
BoxAndWhiskerChart createBoxAndWhiskerChart BoxAndWhiskerXYDataset   
烛台图           createCandlestickChart OHLCDataset   
股价图           createHighLowChart     OHLCDataset           2种 时间线差别 
甘特图           createGanttChart       IntervalCategoryDataset   
数据点柱状图     createXYBarChart       IntervalXYDataset


一、jFreeChart产生图形的流程
创建一个数据源(dataset)来包含将要在图形中显示的数据>>创建一个 JFreeChart 对象来代表要显示的图形
>>把图形输出
重要的类和接口:
org.jfree.data.general.Dataset 所有数据源类都要实现的接口
org.jfree.chart.ChartFactory 由它来产生 JFreeChart 对象
org.jfree.chart.JFreeChart 所有对图形的调整都是通过它噢!!
org.jfree.chart.plot.Plot 通过JFreeChart 对象获得它,然后再通过它对图形外部部分(例:坐标轴)调整
注意:它有很多子类,一般都下嗍造型到它的子类!
org.jfree.chart.renderer.AbstractRenderer 通过JFreeChart 对象获得它,然后再通过它对图形内部部分
(例:折线的类型)调整。同样,针对不同类型的报表图,它有
着不同的子类实现!在下面我们简称它为 Renderer
下面我们结合不同类型的图形来具体分析这个流程。
二、饼图
饼图的dataset 一般是用PieDataset 接口,具体实现类是 DefaultPieDataset
1、创建一个数据源(dataset):
private static PieDataset createDataset()
{
DefaultPieDataset defaultpiedataset = new DefaultPieDataset(); 
defaultpiedataset.setValue(”One”, new Double(43.200000000000003D));
defaultpiedataset.setValue(”Two”, new Double(10D));
defaultpiedataset.setValue(”Three”, new Double(27.5D));
defaultpiedataset.setValue(”Four”, new Double(17.5D));
return defaultpiedataset;
}
2、由ChartFactory 产生 JFreeChart 对象
private static JFreeChart createChart(PieDataset piedataset)
{
JFreeChart jfreechart = ChartFactory.createPieChart(”Pie Chart Demo 1″, //图形标题名称
piedataset, // dataset
true, // legend?
true, // tooltips?
false); //URLs?
PiePlot pieplot = (PiePlot)jfreechart.getPlot(); //通过JFreeChart 对象获得 plot:PiePlot!!
pieplot.setNoDataMessage(”No data available”); // 没有数据的时候显示的内容
return jfreechart;
}



一些重要的方法:
pieplot.setExplodePercent(0,0.3D) //把Lable 为”One” 的那一块”挖”出来30%
3、输出略

三、柱状图
柱状图的dataset 一般是用CatagoryDataset接口(具体实现类是DefaultCategoryDataset),也会用 IntervalXYDataset
接口
1、创建一个数据源(dataset):

private static CategoryDataset createDataset()
{
String series1 = “First”;
String series2 = “Second”;
String series3 = “Third”;
String category1 = “Category 1″;
String category2 = “Category 2″;
String category3 = “Category 3″;
String category4 = “Category 4″;
String category5 = “Category 5″;
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(1.0D, series1, category1);
defaultcategorydataset.addValue(4D, series1, category2);
defaultcategorydataset.addValue(3D, series1, category3);
defaultcategorydataset.addValue(5D, series1, category4);
defaultcategorydataset.addValue(5D, series1, category5);

defaultcategorydataset.addValue(5D, series2, category1);
defaultcategorydataset.addValue(7D, series2, category2);
defaultcategorydataset.addValue(6D, series2, category3);
defaultcategorydataset.addValue(8D, series2, category4);
defaultcategorydataset.addValue(4D, series2, category5);

defaultcategorydataset.addValue(4D, series3, category1);
defaultcategorydataset.addValue(3D, series3, category2);
defaultcategorydataset.addValue(2D, series3, category3);
defaultcategorydataset.addValue(3D, series3, category4);
defaultcategorydataset.addValue(6D, series3, category5);
return defaultcategorydataset;
}


2、由ChartFactory 产生 JFreeChart 对象
private static JFreeChart createChart(CategoryDataset categorydataset)
{
JFreeChart jfreechart = ChartFactory.createBarChart(”Bar Chart Demo”, // 标题
“Category”,//domain 轴 Lable
这里先简单理解为横坐标Lable好了
“Value”, //range 轴 Lable
这里也先简单理解为纵坐标Lable好了
categorydataset, // dataset
PlotOrientation.VERTICAL, //垂直显示
true, // legend?
true, // tooltips?
false); //URLs?
jfreechart.setBackgroundPaint(Color.white); //设定背景色为白色
CategoryPlot categoryplot = jfreechart.getCategoryPlot(); //获得 plot:CategoryPlot!!
categoryplot.setBackgroundPaint(Color.lightGray); //设定图表数据显示部分背景色
categoryplot.setDomainGridlinePaint(Color.white); //横坐标网格线白色
categoryplot.setDomainGridlinesVisible(true); //可见
categoryplot.setRangeGridlinePaint(Color.white); //纵坐标网格线白色
//下面两行使纵坐标的最小单位格为整数
NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
BarRenderer barrenderer = (BarRenderer)categoryplot.getRenderer(); //获得renderer 注意这里是下嗍造型
到BarRenderer!!
barrenderer.setDrawBarOutline(false); // Bar的外轮廓线不画
GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.blue,
0.0F, 0.0F, new Color(0, 0, 64)); //设定特定颜色
GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green,
0.0F, 0.0F, new Color(0, 64, 0));
GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, Color.red,
0.0F, 0.0F, new Color(64, 0, 0));
barrenderer.setSeriesPaint(0, gradientpaint); //给series1 Bar设定上面定义的颜色
barrenderer.setSeriesPaint(1, gradientpaint1); //给series2 Bar 设定上面定义的颜色
barrenderer.setSeriesPaint(2, gradientpaint2); //给series3 Bar 设定上面定义的颜色
CategoryAxis categoryaxis = categoryplot.getDomainAxis(); //横轴上的 Lable 45度倾斜
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
return jfreechart;
}


一些重要的方法:(增加一块标记)
IntervalMarker intervalmarker = new IntervalMarker(4.5D, 7.5D);
intervalmarker.setLabel(”Target Range”);
intervalmarker.setLabelFont(new Font(”SansSerif”, 2, 11));
intervalmarker.setLabelAnchor(RectangleAnchor.LEFT);
intervalmarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
intervalmarker.setPaint(new Color(222, 222, 255, 128));
categoryplot.addRangeMarker(intervalmarker, Layer.BACKGROUND);

四、折线图
折线图的dataset 两种CatagoryDataset接口(具体实现类是DefaultCategoryDataset),XYDataset 接口
1、CatagoryDataset接口:
A、创建一个数据源(dataset):
private static CategoryDataset createDataset()
{
String series1 = “First”;
String series2 = “Second”;
String series3 = “Third”;
String type1 = “Type 1″;
String type2 = “Type 2″;
String type3 = “Type 3″;
String type4 = “Type 4″;
String type5 = “Type 5″;
String type6 = “Type 6″;
String type7 = “Type 7″;
String type8 = “Type 8″;
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
defaultcategorydataset.addValue(1.0D, series1, type1);
defaultcategorydataset.addValue(4D, series1, type2);
defaultcategorydataset.addValue(3D, series1, type3);
defaultcategorydataset.addValue(5D, series1, type4);
defaultcategorydataset.addValue(5D, series1, type5);
defaultcategorydataset.addValue(7D, series1, type6);
defaultcategorydataset.addValue(7D, series1, type7);
defaultcategorydataset.addValue(8D, series1, type8);

defaultcategorydataset.addValue(5D, series2, type1);
defaultcategorydataset.addValue(7D, series2, type2);
defaultcategorydataset.addValue(6D, series2, type3);
defaultcategorydataset.addValue(8D, series2, type4);
defaultcategorydataset.addValue(4D, series2, type5);
defaultcategorydataset.addValue(4D, series2, type6);
defaultcategorydataset.addValue(2D, series2, type7);
defaultcategorydataset.addValue(1.0D, series2, type8);

defaultcategorydataset.addValue(4D, series3, type1);
defaultcategorydataset.addValue(3D, series3, type2);
defaultcategorydataset.addValue(2D, series3, type3);
defaultcategorydataset.addValue(3D, series3, type4);
defaultcategorydataset.addValue(6D, series3, type5);
defaultcategorydataset.addValue(3D, series3, type6);
defaultcategorydataset.addValue(4D, series3, type7);
defaultcategorydataset.addValue(3D, series3, type8);
return defaultcategorydataset;
}

B、由ChartFactory 产生 JFreeChart 对象

private static JFreeChart createChart(CategoryDataset categorydataset)
{
JFreeChart jfreechart = ChartFactory.createLineChart(”Line Chart Demo 1″,
“Type”,
“Value”,
categorydataset,
PlotOrientation.VERTICAL,
true,
true,
false);
jfreechart.setBackgroundPaint(Color.white);
CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
categoryplot.setBackgroundPaint(Color.lightGray);
categoryplot.setRangeGridlinePaint(Color.white);
NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
numberaxis.setAutoRangeIncludesZero(true);
//获得renderer 注意这里是下嗍造型到lineandshaperenderer!!
LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer)categoryplot.getRenderer();
lineandshaperenderer.setShapesVisible(true); //series 点(即数据点)可见
lineandshaperenderer.setSeriesStroke(0, new BasicStroke(2.0F, 1, 1, 1.0F, new float[] {
10F, 6F
}, 0.0F)); //定义series为”First”的(即series1)点之间的连线 ,这里是虚线,默认是直线
lineandshaperenderer.setSeriesStroke(1, new BasicStroke(2.0F, 1, 1, 1.0F, new float[] {
6F, 6F
}, 0.0F)); //定义series为”Second”的(即series2)点之间的连线
lineandshaperenderer.setSeriesStroke(2, new BasicStroke(2.0F, 1, 1, 1.0F, new float[] {
2.0F, 6F
}, 0.0F)); //定义series为”Third”的(即series3)点之间的连线
return jfreechart;
}
一些重要的方法:
lineandshaperenderer.setLineVisible(true) //series 点(即数据点)间有连线可见
2、XYDataset 接口:
A、创建一个数据源(dataset):
private static XYDataset createDataset()
{
XYSeries xyseries = new XYSeries(”First”); //先产生XYSeries 对象
xyseries.add(1.0D, 1.0D);
xyseries.add(2D, 4D);
xyseries.add(3D, 3D);
xyseries.add(4D, 5D);
xyseries.add(5D, 5D);
xyseries.add(6D, 7D);
xyseries.add(7D, 7D);
xyseries.add(8D, 8D);

XYSeries xyseries1 = new XYSeries(”Second”);
xyseries1.add(1.0D, 5D);
xyseries1.add(2D, 7D);
xyseries1.add(3D, 6D);
xyseries1.add(4D, 8D);
xyseries1.add(5D, 4D);
xyseries1.add(6D, 4D);
xyseries1.add(7D, 2D);
xyseries1.add(8D, 1.0D);

XYSeries xyseries2 = new XYSeries(”Third”);
xyseries2.add(3D, 4D);
xyseries2.add(4D, 3D);
xyseries2.add(5D, 2D);
xyseries2.add(6D, 3D);
xyseries2.add(7D, 6D);
xyseries2.add(8D, 3D);
xyseries2.add(9D, 4D);
xyseries2.add(10D, 3D);

XYSeriesCollection xyseriescollection = new XYSeriesCollection(); //再用XYSeriesCollection添加入XYSeries 对象
xyseriescollection.addSeries(xyseries);
xyseriescollection.addSeries(xyseries1);
xyseriescollection.addSeries(xyseries2);
return xyseriescollection;
}


B、由ChartFactory 产生 JFreeChart 对象

private static JFreeChart createChart(XYDataset xydataset)
{
JFreeChart jfreechart = ChartFactory.createXYLineChart(”Line Chart Demo 2″,
“X”,
“Y”,
xydataset,
PlotOrientation.VERTICAL,
true,
true,
false);
jfreechart.setBackgroundPaint(Color.white);
XYPlot xyplot = (XYPlot)jfreechart.getPlot(); //获得 plot:XYPlot!!
xyplot.setBackgroundPaint(Color.lightGray); //设定图表数据显示部分背景色
xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D)); //设定坐标轴与图表数据显示部分距离
xyplot.setDomainGridlinePaint(Color.white); //网格线颜色
xyplot.setRangeGridlinePaint(Color.white);
//获得 renderer 注意这里是XYLineAndShapeRenderer !!
XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)xyplot.getRenderer();
xylineandshaperenderer.setShapesVisible(true); //数据点可见
xylineandshaperenderer.setShapesFilled(true); //数据点被填充即不是空心点
NumberAxis numberaxis = (NumberAxis)xyplot.getRangeAxis();
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
return jfreechart;
}


一些重要的方法:
XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer();
xylineandshaperenderer.setSeriesLinesVisible(0, false); //第一个XYSeries数据点间连线不可见
xylineandshaperenderer.setSeriesShapesVisible(1, false); //第二个XYSeries数据点不可见
xyplot.setRenderer(xylineandshaperenderer);

五、时间序列图
时间序列图和折线图很相似,不同的是它在 domain轴的数据是时间而不是数字。 时间序列图的dataset 是
XYDataset 接口,具体实现类是TimeSeriesCollection ,和上面类似,有TimeSeries 对象,它被添加入
TimeSeriesCollection 。
1、创建一个数据源(dataset):

private static XYDataset createDataset()
{
TimeSeries timeseries = new TimeSeries(”L&G European Index Trust”,Month.class);
timeseries.add(new Month(2, 2001), 181.8D);//这里用的是Month.class,同样还有Day.class Year.class 等等
timeseries.add(new Month(3, 2001), 167.3D);
timeseries.add(new Month(4, 2001), 153.8D);
timeseries.add(new Month(5, 2001), 167.6D);
timeseries.add(new Month(6, 2001), 158.8D);
timeseries.add(new Month(7, 2001), 148.3D);
timeseries.add(new Month(8, 2001), 153.9D);
timeseries.add(new Month(9, 2001), 142.7D);
timeseries.add(new Month(10, 2001), 123.2D);
timeseries.add(new Month(11, 2001), 131.8D);
timeseries.add(new Month(12, 2001), 139.6D);
timeseries.add(new Month(1, 2002), 142.9D);
timeseries.add(new Month(2, 2002), 138.7D);
timeseries.add(new Month(3, 2002), 137.3D);
timeseries.add(new Month(4, 2002), 143.9D);
timeseries.add(new Month(5, 2002), 139.8D);
timeseries.add(new Month(6, 2002), 137D);
timeseries.add(new Month(7, 2002), 132.8D);

TimeSeries timeseries1 = new TimeSeries(”L&G UK Index Trust”,Month.class);
timeseries1.add(new Month(2, 2001), 129.6D);
timeseries1.add(new Month(3, 2001), 123.2D);
timeseries1.add(new Month(4, 2001), 117.2D);
timeseries1.add(new Month(5, 2001), 124.1D);
timeseries1.add(new Month(6, 2001), 122.6D);
timeseries1.add(new Month(7, 2001), 119.2D);
timeseries1.add(new Month(8, 2001), 116.5D);
timeseries1.add(new Month(9, 2001), 112.7D);
timeseries1.add(new Month(10, 2001), 101.5D);
timeseries1.add(new Month(11, 2001), 106.1D);
timeseries1.add(new Month(12, 2001), 110.3D);
timeseries1.add(new Month(1, 2002), 111.7D);
timeseries1.add(new Month(2, 2002), 111D);
timeseries1.add(new Month(3, 2002), 109.6D);
timeseries1.add(new Month(4, 2002), 113.2D);
timeseries1.add(new Month(5, 2002), 111.6D);
timeseries1.add(new Month(6, 2002), 108.8D);
timeseries1.add(new Month(7, 2002), 101.6D);
TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();
timeseriescollection.addSeries(timeseries);
timeseriescollection.addSeries(timeseries1);
timeseriescollection.setDomainIsPointsInTime(true); //domain轴上的刻度点代表的是时间点而不是时间段
return timeseriescollection;
}


2、由ChartFactory 产生 JFreeChart 对象
private static JFreeChart createChart(XYDataset xydataset)
{
JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(”Legal & General Unit Trust Prices”,
“Date”,
“Price Per Unit”,
xydataset,
true,
true,
false);
jfreechart.setBackgroundPaint(Color.white);
XYPlot xyplot = (XYPlot)jfreechart.getPlot(); //获得 plot : XYPlot!!
xyplot.setBackgroundPaint(Color.lightGray);
xyplot.setDomainGridlinePaint(Color.white);
xyplot.setRangeGridlinePaint(Color.white);
xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));
xyplot.setDomainCrosshairVisible(true);
xyplot.setRangeCrosshairVisible(true);
org.jfree.chart.renderer.xy.XYItemRenderer xyitemrenderer = xyplot.getRenderer();
if(xyitemrenderer instanceof XYLineAndShapeRenderer)
{
XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)xyitemrenderer;
xylineandshaperenderer.setDefaultShapesVisible(true); //数据点可见
xylineandshaperenderer.setDefaultShapesFilled(true); //数据点是实心点
}
DateAxis dateaxis = (DateAxis)xyplot.getDomainAxis(); //对domain 轴上日期显示格式定义
dateaxis.setDateFormatOverride(new SimpleDateFormat(”MMM-yyyy”));
return jfreechart;
}


一些重要的方法:
A、增加标记线:
xyplot.addRangeMarker(new ValueMarker(550D)); //数值轴
Quarter quarter = new Quarter(2, 2002);
xyplot.addDomainMarker(new ValueMarker(quarter.getMiddleMillisecond())); //时间轴
B、数据点的调整
XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)xyplot.getRenderer();
xylineandshaperenderer.setDefaultShapesVisible(true); //数据点可见
xylineandshaperenderer.setSeriesFillPaint(0, Color.red); //数据点填充为红色
xylineandshaperenderer.setSeriesFillPaint(1, Color.white); //数据点填充为白色
xylineandshaperenderer.setUseFillPaint(true); //应用
C、平均值曲线
这个曲线有什么用呢?很简单的例子,这里有一个以半年每天为单位的数据绘制的曲线,我们想看看以月为单位数据
的变化,这时就可以用到它了。
TimeSeries timeseries = createEURTimeSeries(); //就是以半年每天为单位的数据
TimeSeries timeseries1 = MovingAverage.createMovingAverage(timeseries,
“30 day moving average”,
30, //30天为一个周期
30); //最开始的30天跳过
TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();
timeseriescollection.addSeries(timeseries);
timeseriescollection.addSeries(timeseries1);
return timeseriescollection;

六、总结一下
dataset plot renderer
饼图 PieDataset(DefaultPieDataset) PiePlot ——
柱状图 CatagoryDataset(DefaultCategoryDataset) CategoryPlot BarRenderer
折线图 CatagoryDataset(DefaultCategoryDataset) CategoryPlot LineAndShapeRenderer
XYDataset(XYSeriesCollection) XYPlot XYLineAndShapeRenderer
时间序列图 XYDataset (TimeSeriesCollection) XYPlot XYLineAndShapeRenderer
这里只是一些常用的方法,具体还是看API
七、Item Lable
这里以柱状图为例说明,具体来说就是在每个柱状上显示它的数据,具体有下面内容:
A、使 Item Lable 可见
B、调整 Item Lable 的颜色、字体等
C、调整 Item Lable 的位置
D、定制 Item Lable 的内容
1、分配一个 Lable Generator 给 renderer
BarRenderer barrenderer = (BarRenderer)categoryplot.getRenderer();
GategoryLableGenerator generator =new StandardGategoryLableGenerator(
“{2}”, new DecimalFormat(”0.00″) //调整显示的数字和字符格式
);
barrenderer.setLableGenerator(generator);
2、使 Item Lable 可见
barrenderer.setItemLableVisible(true);
3、调整 Item Lable 的颜色、字体等
barrenderer.setItemLablePaint(Color.red);
barrenderer.setItemLableFont(new Font(”SansSerif”,Font.PLAIN,10));
4、调整 Item Lable 的位置
这里涉及到一个新的对象 ItemLablePosition , ItemLablePosition的构造函数有两个或四个参数
public ItemLabelPosition(ItemLabelAnchor itemLabelAnchor,
org.jfree.ui.TextAnchor textAnchor,
org.jfree.ui.TextAnchor rotationAnchor,
double angle)
itemLabelAnchor - Item Lable 的位置 (最重要的!!)
textAnchor - Item Lable里包含的正文相对于Item Lable 的位置
rotationAnchor - Item Lable里包含的正文旋转的位置
angle - 旋转的角度
ItemLabelPosition itemlabelposition = new ItemLabelPosition(ItemLabelAnchor.INSIDE12,
TextAnchor.CENTER_RIGHT,
TextAnchor.CENTER_RIGHT,
-1.57D);
barrenderer.setPositiveItemLabelPosition(itemlabelposition);
这样就可以每个柱状上显示它的数据了,当然可以定制 Item Lable 的内容,比如 Item Lable text 超过100的才
显示,这样就需要定制自己的类,它要实现GategoryLableGenerator 接口,实现generateItemLable()方法

分享到:
评论

相关推荐

    使用JFreeChart创建图表.ppt

    使用JFreeChart创建图表.ppt

    JFreeChart混合图表演示

    JFreeChart是一款强大的Java库,用于创建各种类型的图表,包括柱状图、饼图、线图、散点图等。在“JFreeChart混合图表演示”中,...通过深入学习和实践,你将能够熟练地利用JFreeChart创建出专业且富有表现力的图表。

    使用 JFreeChart来创建基于web的图表 WORD版

    本文档主要讲述的是使用 JFreeChart来创建基于web的图表;JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、...

    在Java Web中使用JFreechart创建图表信息(主要用于统计方面)

    这篇博客文章“在Java Web中使用JFreechart创建图表信息(主要用于统计方面)”将引导我们了解如何在Web应用中集成JFreeChart来处理统计信息。 首先,JFreeChart库提供了丰富的API,可以生成静态图表,这些图表可以...

    JFreeChart图表制作技术研究及应用.pdf

    JFreeChart的图表制作过程主要包括三个步骤:准备数据集、绘制图表、输出图表。 1. **准备数据集**:这是图表制作的基础,需要准备好图表中所需显示的各个点的横纵坐标数据。例如,下面的示例展示了如何创建一个...

    Freemarker导出word示例,包括jfreechart图表

    在描述中提到,我们还会用到JFreeChart库,这是一个用于生成各种图表的Java库,支持多种图表类型,包括柱状图和饼图。JFreeChart的强大之处在于它的灵活性,可以定制图表的颜色、样式、数据标签等各个方面。在本示例...

    使用 JFreeChart来创建基于web的图表

    下面我们将详细探讨如何使用JFreeChart创建基于Web的图表。 首先,集成JFreeChart到Web项目中。你需要将JFreeChart的jar文件添加到项目的类路径中,这可以通过在构建路径中包含它或者将其放入WEB-INF/lib目录下完成...

    jfreechart图表制作案例

    **JFreeChart 图表制作案例** JFreeChart 是一个强大的 Java 图形库,它提供了丰富的图表类型,包括柱状图、饼图、线图、散点图、甘特图等,适用于各种数据可视化需求。本案例将深入探讨如何使用 JFreeChart 创建高...

    Jfreechart打造专业图表

    **JFreeChart:打造专业图表** JFreeChart是一款强大的Java库,用于生成各种高质量的图表,包括...如果你在使用过程中遇到JfreeChart的样式问题,不要轻易放弃,因为它提供了足够的定制能力,使你的图表既实用又美观。

    Jfreechart生成图表的一个例子

    JFreeChart是一款强大的Java库,用于创建高质量的2D图表,包括柱状图、饼状图和线状图等。这个例子将引导我们了解如何利用JFreeChart在Java应用程序中生成这些图表,非常适合初学者入门。 首先,我们需要理解...

    JFreeChart图表制作工具

    JFreeChart可与许多Java框架很好地配合,如JasperReports、iText等,为报告生成提供强大的图表支持。 7. **社区与资源** 作为开源项目,JFreeChart拥有活跃的社区和丰富的文档资源,开发者可以在遇到问题时寻求...

    使用JFreeChart制作各种美丽动人的统计图表

    JFreeChart是一款强大的Java库,用于创建高质量的统计图表,如条形图、线性图、饼图和柱状图等。它为开发者提供了一种简单的方法来展示复杂的数据,使其变得直观易懂。在本篇文章中,我们将深入探讨如何使用...

    android类似于Jfreechart的图表

    它支持线图、柱状图、饼图等多种图表,且提供灵活的样式定制,可以轻松创建出专业级别的图表。AndroidPlot还具有良好的性能和内存管理。 3. AChartEngine AChartEngine是另一个广泛使用的Android图表库,提供了...

    JFreeChart与JSP动态图表

    标题“JFreeChart与JSP动态图表”涉及的是在Java Web开发中利用JFreeChart库创建动态图表并与JSP(JavaServer Pages)结合的技术。JFreeChart是一个强大的开源Java库,用于生成高质量的2D图表,包括折线图、柱状图、...

    用JFreeChart创建基于Web的图表

    ### 用JFreeChart创建基于Web的图表 #### 一、引言与背景 随着互联网技术的迅速发展,网络应用程序已经不再局限于简单的静态内容或基本的动态内容展示。特别是随着Web 2.0时代的到来,用户对交互性和个性化的需求...

    jfreechart 图表制作组件

    jfreechart 图表制作组件,柱状图,完整的程序,有数字,有透明度

    JFreeChart 典型图表生成及属性设置示例

    ### JFreeChart 典型图表生成及属性设置详解 JFreeChart是一款强大的开源Java图表库,用于在Java应用程序中创建各种统计图表。它支持多种类型的图表,如条形图、线图、饼图、散点图等,并且具有丰富的自定义选项。...

    jfreechart生成各种图表

    jfreechart生成各种图表 柱状 饼状 折线 锥状

    jfreechart图表工程,可以导入测试

    综上所述,这个 JFreeChart 图表工程不仅提供了饼图和柱状图的实现,还可能包含了导入和测试的过程,对于学习和使用 JFreeChart 创建图表的开发者来说,是一份非常有价值的资源。通过深入研究和实践,你可以掌握如何...

    JFreeChart所有图表的实例代码

    除了基本的图表创建,JFreeChart 还支持许多高级功能,如: - **图例(Legend)**: 可以自定义图例的位置、样式和字体。 - **图例项(LegendItem)**: 可以单独控制每个系列在图例中的显示。 - **图例事件...

Global site tag (gtag.js) - Google Analytics