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 + -
显示快捷键?