50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > JFreeChart报表实现饼状图(3D) 柱状图(3D) 折线图(3D)

JFreeChart报表实现饼状图(3D) 柱状图(3D) 折线图(3D)

时间:2020-11-28 13:19:21

相关推荐

JFreeChart报表实现饼状图(3D) 柱状图(3D) 折线图(3D)

JFreeChart是JAVA平台上的一个开放的图表绘制类库。

所需jar包:>点我下载

Demo实例下载:>点我下载

一:JFreeChart制作饼状图

①:加入所需的jar包

②:核心代码

import java.awt.Font;import java.awt.Image;import java.io.File;import javax.imageio.ImageIO;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.labels.StandardPieSectionLabelGenerator;import org.jfree.chart.plot.PiePlot;import org.jfree.data.general.DefaultPieDataset;/*** 饼状图实现* @author 谢豪**/public class JFreeChart_PieChart {public static void main(String[] args) {try {//如果不使用Font,中文将显示不出来Font font = new Font("宋体", Font.BOLD, 15);DefaultPieDataset pds = new DefaultPieDataset();pds.setValue("sun", 100);pds.setValue("ibm", 300);pds.setValue("bea", 500);pds.setValue("oracle", 700);/*** 生成一个饼图的图表** 分别是:显示图表的标题、需要提供对应图表的DateSet对象、是否显示图例、是否生成贴士以及是否生成URL链接*/JFreeChart chart = ChartFactory.createPieChart("标题", pds, true, false, true);//设置图片标题的字体chart.getTitle().setFont(font);//得到图块,准备设置标签的字体PiePlot plot = (PiePlot) chart.getPlot();//设置分裂效果,需要指定分裂出去的keyplot.setExplodePercent("oracle", 0.3);//设置标签字体plot.setLabelFont(font);//设置图例项目字体chart.getLegend().setItemFont(font);/*** 设置开始角度(弧度计算)** 度 0° 30° 45° 60° 90° 120° 135° 150° 180° 270° 360°* 弧度 0 π/6 π/4 π/3 π/2 2π/3 3π/4 5π/6 π 3π/2 2π*/plot.setStartAngle(new Float(3.14f / 2f));//设置背景图片,设置最大的背景Image img = ImageIO.read(new File("D:/JFreeChart/背景图-白色.jpg"));chart.setBackgroundImage(img);//设置plot的背景图片img = ImageIO.read(new File("D:/JFreeChart/背景图-粉色.jpg"));plot.setBackgroundImage(img);//设置plot的前景色透明度plot.setForegroundAlpha(0.7f);//设置plot的背景色透明度plot.setBackgroundAlpha(0.0f);//设置标签生成器(默认{0})//{0}:key {1}:value {2}:百分比 {3}:sumplot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}({1})/{2}"));//将内存中的图片写到本地硬盘ChartUtilities.saveChartAsJPEG(new File("D:/JFreeChart/数据图.jpg"), chart, 600, 300);} catch (Exception e) {e.printStackTrace();}}}

③:生成的图片

④:设置3D效果方法:

ChartFactory.createPieChart() 改为 ChartFactory.createPieChart3D()PiePlot plot = (PiePlot) chart.getPlot() 改为 PiePlot3D plot = (PiePlot3D) chart.getPlot()即可。

二:JFreeChart制作树状图

①:加入所需的jar包

②:核心代码

import java.awt.Font;import java.io.File;import javax.imageio.ImageIO;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.data.category.DefaultCategoryDataset;/*** 树状图实现* @author 谢豪**/public class JFreeChart_Dendrogram {public static void main(String[] args) {try {//种类数据集DefaultCategoryDataset ds = new DefaultCategoryDataset();ds.setValue(100, "ibm", "第一季度");ds.setValue(200, "ibm", "第二季度");ds.setValue(600, "ibm", "第三季度");ds.setValue(500, "google", "第一季度");ds.setValue(333, "google", "第二季度");ds.setValue(780, "google", "第三季度");ds.setValue(600, "用友", "第一季度");ds.setValue(1500, "用友", "第二季度");ds.setValue(300, "用友", "第三季度");Font font = new Font("宋体", Font.BOLD, 20);//创建柱状图,柱状图分水平显示和垂直显示两种JFreeChart chart = ChartFactory.createBarChart("前三季度各大公司JEEAS市场销售情况", "季度", "销量(万台)", ds, PlotOrientation.VERTICAL, true, true, true);//设置整个图片的标题字体chart.getTitle().setFont(font);//设置提示条字体font = new Font("宋体", Font.BOLD, 15);chart.getLegend().setItemFont(font);//得到绘图区CategoryPlot plot = (CategoryPlot) chart.getPlot();//得到绘图区的域轴(横轴),设置标签的字体plot.getDomainAxis().setLabelFont(font);//设置横轴标签项字体plot.getDomainAxis().setTickLabelFont(font);//设置范围轴(纵轴)字体plot.getRangeAxis().setLabelFont(font);//存储成图片//设置chart的背景图片chart.setBackgroundImage(ImageIO.read(new File("D:/JFreeChart/背景图-白色.jpg")));plot.setBackgroundImage(ImageIO.read(new File("D:/JFreeChart/背景图-粉色.jpg")));plot.setForegroundAlpha(1.0f);ChartUtilities.saveChartAsJPEG(new File("D:/JFreeChart/数据图.jpg"), chart, 600, 400);} catch (Exception e) {e.printStackTrace();}}}

③:生成的图片

④:设置3D效果方法:

JFreeChart chart = ChartFactory.createBarChart() 改为 JFreeChart chart = ChartFactory.createBarChart3D()即可。

三:JFreeChart制作折线图

①:加入所需的jar包

②:核心代码

import java.awt.Font;import java.io.File;import javax.imageio.ImageIO;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.data.category.DefaultCategoryDataset;/*** 折线图实现* @author 谢豪**/public class JFreeChart_FoldLine {public static void main(String[] args) {try {//种类数据集DefaultCategoryDataset ds = new DefaultCategoryDataset();ds.setValue(100, "ibm", "第一季度");ds.setValue(200, "ibm", "第二季度");ds.setValue(600, "ibm", "第三季度");ds.setValue(500, "google", "第一季度");ds.setValue(333, "google", "第二季度");ds.setValue(780, "google", "第三季度");ds.setValue(600, "用友", "第一季度");ds.setValue(1500, "用友", "第二季度");ds.setValue(300, "用友", "第三季度");Font font = new Font("宋体", Font.BOLD, 20);//创建柱状图JFreeChart chart = ChartFactory.createLineChart("前三季度各大公司JEEAS市场销售情况", "季度", "销量(万台)", ds, PlotOrientation.VERTICAL, true, true, true);//设置整个图片的标题字体chart.getTitle().setFont(font);//设置提示条字体font = new Font("宋体", Font.BOLD, 15);chart.getLegend().setItemFont(font);//得到绘图区CategoryPlot plot = (CategoryPlot) chart.getPlot();//得到绘图区的域轴(横轴),设置标签的字体plot.getDomainAxis().setLabelFont(font);//设置横轴标签项字体plot.getDomainAxis().setTickLabelFont(font);//设置范围轴(纵轴)字体plot.getRangeAxis().setLabelFont(font);//存储成图片//设置chart的背景图片chart.setBackgroundImage(ImageIO.read(new File("D:/JFreeChart/背景图-白色.jpg")));plot.setBackgroundImage(ImageIO.read(new File("D:/JFreeChart/背景图-粉色.jpg")));plot.setForegroundAlpha(1.0f);ChartUtilities.saveChartAsJPEG(new File("D:/JFreeChart/数据图.jpg"), chart, 600, 400);} catch (Exception e) {e.printStackTrace();}}}

③:生成的图片

④:设置3D效果方法:

JFreeChart chart = ChartFactory.createLineChart() 改为 JFreeChart chart = ChartFactory.createLineChart3D()即可。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。