柱状图
package util;
import java.awt.Color;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
public class BarChart3DDemo
{
public static void main(String[] args) throws IOException
{
JFreeChart chart = ChartFactory.createBarChart3D(
"图书销量统计图", // 图表标题
"图书", // 目录轴的显示标签
"销量", // 数值轴的显示标签
getDataSet(), // 数据集
//PlotOrientation.HORIZONTAL , // 图表方向:水平
PlotOrientation.VERTICAL , // 图表方向:垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
//重新设置图标标题,改变字体
chart.setTitle(new TextTitle("图书销量统计图", new Font("黑体", Font.ITALIC , 22)));
//取得统计图标的第一个图例
LegendTitle legend = chart.getLegend(0);
//修改图例的字体
legend.setItemFont(new Font("宋体", Font.BOLD, 14));
CategoryPlot plot = (CategoryPlot)chart.getPlot();
//设置柱状图到图片上端的距离
ValueAxis rangeAxis = plot.getRangeAxis();
rangeAxis.setUpperMargin(0.1);
//取得横轴
CategoryAxis categoryAxis = plot.getDomainAxis();
//设置横轴显示标签的字体
categoryAxis.setLabelFont(new Font("宋体" , Font.BOLD , 22));
//分类标签以45度角倾斜
categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
categoryAxis.setTickLabelFont(new Font("宋体" , Font.BOLD , 18));
//取得纵轴
NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();
//设置纵轴显示标签的字体
numberAxis.setLabelFont(new Font("宋体" , Font.BOLD , 22));
//在柱体的上面显示数据
BarRenderer custombarrenderer3d = new BarRenderer();
custombarrenderer3d.setBaseItemLabelPaint(Color.BLACK);//数据字体的颜色
custombarrenderer3d
.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
custombarrenderer3d.setBaseItemLabelsVisible(true);
plot.setRenderer(custombarrenderer3d);
FileOutputStream fos = null;
fos = new FileOutputStream("d:book1.jpg");
//将统计图标输出成JPG文件
ChartUtilities.writeChartAsJPEG(
fos, //输出到哪个输出流
1, //JPEG图片的质量,0~1之间
chart, //统计图标对象
800, //宽
600,//宽
null //ChartRenderingInfo 信息
);
fos.close();
}
//返回一个CategoryDataset实例
private static CategoryDataset getDataSet()
{
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(45000 , "北京" , "Spring2.0宝典");
dataset.addValue(38000 , "北京" , "轻量级J2EE企业实战");
dataset.addValue(24000 , "北京" , "基于J2EE的Ajax宝典");
dataset.addValue(32000 , "北京" , "JavaScript权威指南");
dataset.addValue(21000 , "北京" , "Ajax In Action");
dataset.addValue(37000 , "上海" , "Spring2.0宝典");
dataset.addValue(36000 , "上海" , "轻量级J2EE企业实战");
dataset.addValue(34000 , "上海" , "基于J2EE的Ajax宝典");
dataset.addValue(42000 , "上海" , "JavaScript权威指南");
dataset.addValue(12000 , "上海" , "Ajax In Action");
dataset.addValue(42000 , "广州" , "Spring2.0宝典");
dataset.addValue(40000 , "广州" , "轻量级J2EE企业实战");
dataset.addValue(34000 , "广州" , "基于J2EE的Ajax宝典");
dataset.addValue(18000 , "广州" , "JavaScript权威指南");
dataset.addValue(26000 , "广州" , "Ajax In Action");
return dataset;
}
}
饼状图
package test;
import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.NumberFormat;
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.PiePlot3D;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
public class testPieChart {
public static void main(String []args){
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue(" 市场前期", new Double(10));
dataset.setValue(" 立项", new Double(15));
dataset.setValue(" 计划", new Double(10));
dataset.setValue(" 需求与设计", new Double(10));
dataset.setValue(" 执行控制", new Double(35));
dataset.setValue(" 收尾", new Double(10));
dataset.setValue(" 运维",new Double(10));
JFreeChart chart = ChartFactory.createPieChart3D("项目状态分布", dataset,
true, true, false);
PiePlot3D plot = (PiePlot3D) chart.getPlot();
// 图片中显示百分比:默认方式
// plot.setLabelGenerator(new
// StandardPieSectionLabelGenerator(StandardPieToolTipGenerator.DEFAULT_TOOLTIP_FORMAT));
// 图片中显示百分比:自定义方式,{0} 表示选项, {1} 表示数值, {2} 表示所占比例 ,小数点后两位
plot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}({2})", NumberFormat.getNumberInstance(),
new DecimalFormat("0.00%")));
// 图例显示百分比:自定义方式, {0} 表示选项, {1} 表示数值, {2} 表示所占比例
plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(
"{0}={1}({2})"));
// 设置背景色为白色
chart.setBackgroundPaint(Color.white);
// 指定图片的透明度(0.0-1.0)
plot.setForegroundAlpha(1.0f);
// 指定显示的饼图上圆形(false)还椭圆形(true)
plot.setCircular(true);
// 设置图标题的字体
Font font = new Font(" 黑体", Font.CENTER_BASELINE, 20);
TextTitle title = new TextTitle("项目状态分布");
title.setFont(font);
chart.setTitle(title);
plot.setLabelFont(new Font("SimSun", 0, 12));//
LegendTitle legend = chart.getLegend(0);
legend.setItemFont(new Font("宋体", Font.BOLD, 14));
try {
ChartUtilities.saveChartAsJPEG(
new File("d:\\PieTest9.jpg"), //输出到哪个输出流
1, //JPEG图片的质量,0~1之间
chart, //统计图标对象
640, //宽
300,//宽
null //ChartRenderingInfo 信息
);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
折线图
package chart;
import java.awt.Font;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class LineCharts extends ApplicationFrame {
public LineCharts(String s) {
super(s);
setContentPane(createDemoLine());
}
public static void main(String[] args) {
LineCharts fjc = new LineCharts("折线图");
fjc.pack();
RefineryUtilities.centerFrameOnScreen(fjc);
fjc.setVisible(true);
}
// 生成显示图表的面板
public static JPanel createDemoLine() {
JFreeChart jfreechart = createChart(createDataset());
return new ChartPanel(jfreechart);
}
// 生成图表主对象JFreeChart
public static JFreeChart createChart(DefaultCategoryDataset linedataset) {
// 定义图表对象
JFreeChart chart = ChartFactory.createLineChart("折线图", // chart title
"时间", // domain axis label
"销售额(百万)", // range axis label
linedataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
false // urls
);
CategoryPlot plot = chart.getCategoryPlot();
// 设置图示字体
chart.getTitle().setFont(new Font("宋体", Font.BOLD, 22));
//设置横轴的字体
CategoryAxis categoryAxis = plot.getDomainAxis();
categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));//x轴标题字体
categoryAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 18));//x轴刻度字体
//以下两行 设置图例的字体
LegendTitle legend = chart.getLegend(0);
legend.setItemFont(new Font("宋体", Font.BOLD, 14));
//设置竖轴的字体
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setLabelFont(new Font("宋体" , Font.BOLD , 22)); //设置数轴的字体
rangeAxis.setTickLabelFont(new Font("宋体" , Font.BOLD , 22));
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());//去掉竖轴字体显示不全
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(0.20);
rangeAxis.setLabelAngle(Math.PI / 2.0);
return chart;
}
// 生成数据
public static DefaultCategoryDataset createDataset() {
DefaultCategoryDataset linedataset = new DefaultCategoryDataset();
// 各曲线名称
String series1 = "冰箱";
String series2 = "彩电";
String series3 = "洗衣机";
// 横轴名称(列名称)
String type1 = "1月";
String type2 = "2月";
String type3 = "3月";
linedataset.addValue(0.0, series1, type1);
linedataset.addValue(4.2, series1, type2);
linedataset.addValue(3.9, series1, type3);
linedataset.addValue(1.0, series2, type1);
linedataset.addValue(5.2, series2, type2);
linedataset.addValue(7.9, series2, type3);
linedataset.addValue(2.0, series3, type1);
linedataset.addValue(9.2, series3, type2);
linedataset.addValue(8.9, series3, type3);
return linedataset;
}
}
<!--EndFragment-->
分享到:
相关推荐
JFreeChart库是开源的Java图形库,提供了一套完整的API,支持生成各种复杂图表,如折线图、柱状图、饼图、散点图、甘特图等。它的设计目标是易于使用、可扩展且功能强大,使得开发者无需深入了解图形渲染机制,就能...
jFreeChart是java编程语言中一个功能强大、开源免费的图表库,能够生成各种类型的图表,包括曲线图、饼状图、柱状图等。通过jFreeChart,可以快速地生成高质量的图表,以满足不同领域的需求。 jFreeChart核心对象类...
**JFreeChart 折线图 Demo 知识点详解** JFreeChart 是一个用 Java 编写的开源图表库,它提供了丰富的图表类型,包括折线图、柱状图、饼图等,适用于各种数据可视化需求。在这个“jfreechart折线图demo”中,我们将...
**JFreeChart 折线图实例详解** JFreeChart 是一个强大的 Java 图形库,它提供了丰富的图表类型,包括折线图、柱状图、饼图等,适用于各种数据分析和展示场景。在这个例子中,我们将深入探讨如何使用 JFreeChart ...
它支持多种图形展示方式,包括饼图、折线图、柱状图(水平与垂直)、甘特图、XY散点图、时间序列图、高低开收盘图、蜡烛图、组合图、帕累托图、气泡图、风向图、仪表盘图等。JFreeChart官方网站提供了丰富的示例,...
在JFreeChart中,你可以通过`PieDataset`接口来构建数据集,然后使用`PieChart`类生成饼状图。你可以自定义颜色、标签、阴影效果以及百分比显示等特性,使图表更具可读性和美观性。 ### 2. 单组柱状图 单组柱状图...
JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、饼图、线形图、散点图等,适用于各种数据分析和可视化需求。本工程例子展示了如何利用JFreeChart创建包含中文内容的图表,并解决...
`CategoryDataset`是JFreeChart中一种非常基础的数据集类型,适用于柱状图、堆叠柱状图、折线图等多种图表类型。示例代码中,我们首先创建了一个`DefaultCategoryDataset`实例,然后向其中添加数据。例如: ```java...
JFreeChart 是一个功能强大的 Java 图表库,它为开发者提供了创建各种高质量图表的能力,包括折线图、柱状图、饼图、散点图、甘特图等。这个教程将帮助你深入理解和使用 JFreeChart,结合学习笔记、流程图和示例代码...
JFreeChart是一个强大的Java库,用于生成高质量的图表,包括折线图、柱状图、饼图、散点图等多种类型。它在各种应用程序中广泛应用,尤其适合于Web应用程序中数据可视化的实现。本文将通过两个实例,深入探讨如何...
### JFreeChart 教程:饼状图与柱状图详解 #### 一、JFreeChart简介 JFreeChart是一款开源的Java图表绘制库,它提供了丰富的API来创建各种统计图表,包括饼图、柱状图、折线图等。由于其强大的功能以及良好的文档...
JFreeChart支持简单的线性图、曲线图以及折线图,可以添加多个数据系列,通过不同颜色或样式区分。此外,还可以添加图例、网格线、数据点标记等元素,使得曲线图更加清晰直观。 **四、JFreeChart使用步骤** 1. **...
JFreeChart 是一个功能强大的开源 Java 图形库,它为开发者提供了丰富的图表绘制能力,包括折线图、柱状图、饼图、散点图、甘特图等多种类型。这个中文教程将帮助初学者快速掌握 JFreeChart 的基本用法和高级特性。 ...
2. 创建图表对象:选择合适的图形库,根据数据类型创建相应的图表对象,如JFreeChart的CategoryDataset(用于柱状图和折线图)或PieDataset(用于饼状图)。 3. 设计图表:自定义图表的外观,包括颜色、字体、标签...
JFreeChart是一个强大的Java图表库,它能够生成各种类型的高质量图表,包括折线图、柱状图、饼图、散点图、甘特图以及股票图等。在金融领域,JFreeChart常用于创建实时的股票图表,展示股票的价格波动和交易量变化。...
JFreeChart 是一个强大的 Java 图形库,它提供了丰富的图表类型,包括柱状图、折线图、饼状图、散点图等,使得开发者能够在 Java 应用程序中轻松创建高质量的可视化数据。在本篇中,我们将聚焦于 JFreeChart 如何...
它支持多种图表类型,如饼图、柱状图、折线图和散点图等,适用于各种数据可视化需求。本文将深入探讨JFreeChart的基本使用方法,通过具体的代码实例来展示如何生成这些常见的图表。 1. **饼图(Pie Chart)** 饼图...
JFreeChart是一个强大的Java库,能够生成各种类型的图表,如柱状图、饼图、折线图等。而Struts2作为一款流行的MVC框架,它提供了方便的控制层处理机制。将JFreeChart与Struts2结合,可以方便地在Web应用程序中生成...
在Java编程中,JFreeChart是一个强大的库,用于创建各种图表,包括柱状图、折线图以及混合图表。本文将深入探讨如何使用JFreeChart来绘制混合图表,这对于数据可视化,尤其是在软件质量保证(SQA)中的不良柏拉图...
JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、折线图、饼图、散点图等,广泛应用于数据可视化和报告生成。在本篇文章中,我们将深入探讨如何使用JFreeChart来创建饼状图,帮助...