上午完成了JFreeChart绘制饼图、折线图两种。整体上感觉JFreeChart功能还是比较强大的,只是没有很好的文档,官方网站上的是要收费的。网上找了一些,也只是基本的,然后雷同事也给了我一个word文档,这些基本上也够我画这个JFreeChart的图了。JFreeChart每一个类的方法封装过多,这是我的感觉,有的时候找一个东西有点麻烦,对中文的支持也不是很好,每次画图的时候还要自己设置字体,否则中文就是乱码。
使用JFreeChart绘图的基本流程:
1、定义数据源
2、填充数据
3、定义JFreeChart实例
4、设置Chart属性
5、导出到JPG或实例化一个Frame显示
1、DefaultPieDataset dataset = new DefaultPieDataset();
2、dataset.setValue("初中", 10);
dataset.setValue("高中", 10);
dataset.setValue("大学", 10);
3、JFreeChart chart = ChartFactory.createPieChart3D("学历分布图", dataset, true, true, true);
4、Font font = new Font(title, Font.BOLD, 15);
chart.getTitle().setFont(font);
5、ChartFrame frame = new ChartFrame(title, chart);
frame.pack();
frame.setVisible(true);
或
ChartUtilities.saveChartAsJPEG(new File("d:/testChart.jpg"), chart, 400, 400);
基本流程都是一致的,只是画各种不同的图的时候各项设置和各个类有细微差别。
使用JFreeChart,有几个概念需要理解,
chart——整个图表,包含一个plot
plot——图表数据的载体
dataset——数据集合
以下是2个完成的例子(当然JFreeChart的包还是要自己加一下的,可以到http://www.jfree.org/jfreechart/上去下载)
package com.cjnetwork.testjfreechart.aatest;
import java.awt.Font;
import java.io.File;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
public class TestJFreeChart {
public static void main(String[] args) throws Exception{
System.out.println("start...");
//测试饼图
testPieChart();
//测试折线图
testLineChart();
System.out.println("complete...");
}
/**
*
* 测试饼图
*
* cjnetwork 2010-11-17下午05:21:15
*/
private static void testPieChart() throws Exception{
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("初中", 25);
dataset.setValue("高中", 55);
dataset.setValue("大学", 100);
JFreeChart chart = ChartFactory.createPieChart3D("学历分布图", dataset, true, true, true);
Font font = new Font("黑体", Font.BOLD, 15);
chart.getTitle().setFont(font);
chart.getLegend().setItemFont(font);
((PiePlot)chart.getPlot()).setLabelFont(font);
ChartFrame frame = new ChartFrame("学历分布图", chart);
frame.pack();
frame.setVisible(true);
ChartUtilities.saveChartAsJPEG(new File("d:/testPieChart.jpg"), chart, 1024, 768);
}
/**
*
* 测试折线图
*
* cjnetwork 2010-11-17下午05:21:07
*/
private static void testLineChart() throws Exception{
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "苹果", "2010-10-01");
dataset.addValue(150, "香蕉", "2010-10-01");
dataset.addValue(130, "葡萄", "2010-10-01");
dataset.addValue(120, "梨", "2010-10-01");
dataset.addValue(110, "苹果", "2010-10-02");
dataset.addValue(160, "香蕉", "2010-10-02");
dataset.addValue(70, "葡萄", "2010-10-02");
dataset.addValue(145, "梨", "2010-10-02");
dataset.addValue(150, "苹果", "2010-10-03");
dataset.addValue(168, "香蕉", "2010-10-03");
dataset.addValue(60, "葡萄", "2010-10-03");
dataset.addValue(148, "梨", "2010-10-03");
dataset.addValue(140, "苹果", "2010-10-04");
dataset.addValue(190, "香蕉", "2010-10-04");
dataset.addValue(60, "葡萄", "2010-10-04");
dataset.addValue(163, "梨", "2010-10-04");
JFreeChart chart = ChartFactory.createLineChart("水果产量图", "时间", "产量", dataset, PlotOrientation.VERTICAL, true, true, true);
CategoryPlot plot = chart.getCategoryPlot();
plot.getRangeAxis().setUpperMargin(0.15);
Font font = new Font("黑体", Font.BOLD, 15);
chart.getLegend().setItemFont(font);
chart.getTitle().setFont(font);
plot.getDomainAxis().setTickLabelFont(font);
plot.getDomainAxis().setLabelFont(font);
plot.getRangeAxis().setLabelFont(font);
LineAndShapeRenderer lineAndShapeRenderer = (LineAndShapeRenderer) plot.getRenderer();
lineAndShapeRenderer.setBaseLinesVisible(true);
lineAndShapeRenderer.setBaseShapesVisible(true);
lineAndShapeRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
lineAndShapeRenderer.setBaseItemLabelsVisible(true);
ChartFrame frame = new ChartFrame("水果产量图", chart);
frame.pack();
frame.setVisible(true);
ChartUtilities.saveChartAsJPEG(new File("d:/testLineChart.jpg"), chart, 1024, 768);
}
}
分享到:
相关推荐
利用Java2D api,它目前支持条形图、饼图、折线图、xy图和时间序列图 包含 jfreechart-1.0.19-demo.jar(java 环境下点击就可以查看) 包含jar包 jfreechart-1.0.19.jar,jfreechart-1.0.19-swt.jar,jcommon-1.0.23...
JFreeChart 饼图,柱图,折线图可运行
jfreechart-1.0.9-experimental 用于java后台绘制图形的jar包,如折线图 饼图 柱形图
java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图
java绘制图表(柱状图、饼图、折线图)包, jfreechart
jfreechart 生成折线图,饼图,柱状图,堆栈柱状图
jfreechart ,fusionchart 饼图 折线图 等实例
JFreeChart饼图、折线图等资料学习,jar包,示例,api。全有非常好用
源文件 博文链接:https://lansky07.iteye.com/blog/227571
jfreechart 图形折线,饼图,柱状图等各种图形
jfreechart_生成折线图,饼图,柱状图,堆栈柱状图
java利用JFreeChart实现各类数据统计图柱形图饼图折线图.pdf
使用JFreeChart绘制饼图,折线图,柱状图的代码试例
java 柱形图 饼图 折线图 JFreeChart,里面包含与JFreeChart有关的所有jar包,还有我自己写的例子,通俗易懂!亲测好用,大家快来下载吧,挺不错的一个资源哦!!
Java语言纯后台生成折线图,饼图,柱状图。
java利用JFreeChart实现各种数据统计图(柱形图_饼图_折线图).pdf
1.JFreeChart中的org下的demo属于官方的,可以在jfreechart-1.0.11.zip中找到。cn下的demo自己编写的,在win32+jdk1.6+jfreechart-1.0.11下调试通过。 2.JFreeChartDemo下的demo部署在apache-tomcat-6.0.32下调试...
void setDisplaySeriesShapes(boolean flag) 图示项是否显示形状(折线图有效) void setItemFont(Font font) 图示项字体 void setItemPaint(Paint paint) 图示项字体颜色 void setAnchor(int anchor) 图示在图表中...