piewithmap.java

来自「jfreechart不错的教程例子谢谢!」· Java 代码 · 共 76 行

JAVA
76
字号
package org.jfree.chart.demo;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.StandardPieToolTipGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.urls.CustomPieURLGenerator;
import org.jfree.data.general.DefaultPieDataset;
  
public class PieWithMap { 
    public static void main(String[] args) throws IOException { 
  
        // 第一步创建数据集 
        DefaultPieDataset dataset = new DefaultPieDataset(); 
        dataset.setValue("类别1", 125.3); 
        dataset.setValue("类别2", 52.7); 
        dataset.setValue("类别3", 10.6); 
        dataset.setValue("类别4", 85.96); 
        dataset.setValue("类别5", 43.2); 
  
        // 第二步创建一个JFreeChart对象 
        JFreeChart chart = ChartFactory.createPieChart("第一个饼图", dataset, true, // 是否有图注 
                true, // 是否有提示 
                false // 是否有URLS 
                ); 
  
        ChartUtilities.saveChartAsJPEG(new File("F:\\firstPieChart.jpg"), chart, 300, 300); 
        // 根据不同类型的图表使用不同类,以下是针对饼图的操作 
        PrintWriter w = null; 
        FileOutputStream fos_jpg = null; 
        FileOutputStream fos_cri = null; 
        //这个是重点 
        ChartRenderingInfo info = new ChartRenderingInfo(); 
        
        PiePlot plot = (PiePlot) chart.getPlot(); 
        //构造一个Map用于指定具体类别的url 
        Map urls = new HashMap(); 
        urls.put("类别1", "http://www.livahu.com"); 
        urls.put("类别2", "http://www.google.com"); 
        urls.put("类别3", "http://www.baidu.com"); 
        urls.put("类别4", "http://www.163.com"); 
        urls.put("类别5", "http://www.csdn.net"); 
        
        CustomPieURLGenerator cpug = new CustomPieURLGenerator(); 
        
        cpug.addURLs(urls); 
        
        plot.setURLGenerator(cpug); 
        
        // 设置工具提示 
        plot.setToolTipGenerator(new StandardPieToolTipGenerator()); 
        
        fos_jpg = new FileOutputStream("F:\\firstPieChart.jpg"); 
        OutputStream out = new BufferedOutputStream(fos_jpg);
        //把pieChart图生成出来,写入到输出流生成图片,同时把图片的具体信息放入ChartRenderingInfo的一个实例为以后生成Map提供信息 
        ChartUtilities.writeChartAsJPEG(out, 1.0f, chart, 400, 300, info); 
        fos_cri = new FileOutputStream("F:\\firstPieChart.map"); 
        
        w = new PrintWriter(fos_cri); 
        //使用info中的图像具体信息生成关于这个图像的类别热点,并把它写到输出流中生成map文件。 
        ChartUtilities.writeImageMap(w, "mymap", info, true); 
        w.flush(); 
    } 
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?