首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

JFreeChart简略例子-饼图、折线图

2012-09-02 
JFreeChart简单例子---饼图、折线图? ?????上午完成了JFreeChart绘制饼图、折线图两种。整体上感觉JFreeChart

JFreeChart简单例子---饼图、折线图

? ????

?上午完成了JFreeChart绘制饼图、折线图两种。整体上感觉JFreeChart功能还是比较强大的,只是没有很好的文档,官方网站上的是要收费的。网上找了一些,也只是基本的,然后雷同事也给了我一个word文档,这些基本上也够我画这个JFreeChart的图了。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);}}

?

???

?

1 楼 hanzhenggang 2011-04-20   图表工具有很多的,我最近看了有个叫做openflashchart(flash+js),还有一个叫做Highcharts(纯js,非常炫丽,但有liseen限制,调用的时候会访问它自己的网站获取脚本)

热点排行