使用JFreeChart生成柱状图需要使用CategoryDataset作为统计图表的数据载体,生成柱状图后依然可以使用JFreeChart来设置统计图表的标题和图例格式。要实现设置柱状图的实际图表,同样要调用JFreeChart的getPlot方法来取得实际图表实例。
下面是一个生成简单柱状图的实例,该实例需要jfreechart-1.0.13.jar和jcommon-1.0.16.jar两个JAR包的支持。
BarChart3DDemo.java代码
- package jfreechat;
-
-
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.plot.CategoryPlot;
-
import org.jfree.chart.plot.PlotOrientation;
-
import org.jfree.chart.title.TextTitle;
-
import org.jfree.data.category.CategoryDataset;
-
import org.jfree.data.category.DefaultCategoryDataset;
-
-
public class BarChart3DDemo {
-
-
-
-
-
-
private static CategoryDataset getDataset(){
-
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-
dataset.addValue(4.0, "", "2010-02-01");
-
dataset.addValue(4.4, "", "2010-02-04");
-
dataset.addValue(4.2, "", "2010-02-05");
-
dataset.addValue(4.1, "", "2010-02-08");
-
dataset.addValue(4.0, "", "2010-02-11");
-
dataset.addValue(4.1, "", "2010-02-12");
-
dataset.addValue(3.9, "", "2010-02-19");
-
dataset.addValue(4.0, "", "2010-02-22");
-
dataset.addValue(6.1, "", "2010-02-25");
-
dataset.addValue(4.9, "", "2010-02-26");
-
dataset.addValue(4.4, "", "2010-03-01");
-
dataset.addValue(4.3, "", "2010-03-05");
-
dataset.addValue(4.4, "", "2010-03-08");
-
dataset.addValue(5.6, "", "2010-03-11");
-
dataset.addValue(5.9, "", "2010-03-12");
-
dataset.addValue(4.1, "", "2010-03-15");
-
return dataset;
- }
-
-
public static void main(String[] args) throws IOException {
- JFreeChart chart = ChartFactory.createBarChart3D(
-
"MRP Run Time",
-
"日期",
-
"MRP单次运行总耗时",
-
getDataset(),
-
-
PlotOrientation.VERTICAL,
-
false,
-
false,
-
false
- );
-
-
-
chart.setTitle(new TextTitle("MRP Run Time",new Font("黑体", Font.ITALIC, 22)));
- CategoryPlot plot = (CategoryPlot) chart.getPlot();
-
-
- CategoryAxis categoryAxis = plot.getDomainAxis();
-
categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 20));
-
- categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
-
categoryAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 18));
-
-
- NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
-
numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 20));
-
-
-
FileOutputStream fos = null;
-
fos = new FileOutputStream("D:\\MRPTime.jpg");
-
- ChartUtilities.writeChartAsJPEG(
-
fos,
-
1,
-
chart,
-
800,
-
600,
-
null
- );
-
- fos.close();
- }
- }
在上面的代码中,为了修改柱状图坐标轴的显示格式,使用了两个XXXAxis实例,其中CategoryAxis代表柱状图的横轴,NumberAxis则代表柱状图的纵轴。
对于有坐标轴的统计图表而言,分别调用CategoryPlot的如下两个方法,即可取得柱状图的横轴和纵轴。
- getDomainAxis:返回柱状图的横轴。
- getRangeAxis:返回柱状图的纵轴。
一旦获得了柱状图的两个坐标轴之后,就可以任意修改坐标轴上的输出格式。
- package jfreechat;
-
-
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.plot.CategoryPlot;
-
import org.jfree.chart.plot.PlotOrientation;
-
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 BarChartbook {
-
-
-
-
-
-
-
private static CategoryDataset getDataset(){
-
-
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-
dataset.addValue(45000, "深圳", "JavaScript高级程序设计");
-
dataset.addValue(38000, "深圳", "Java编程思想");
-
dataset.addValue(24000, "深圳", "锋利的jQuery");
-
dataset.addValue(32000, "深圳", "SAP高级应用开发");
-
dataset.addValue(21000, "深圳", "精通Hibernate");
-
dataset.addValue(37000, "武汉", "JavaScript高级程序设计");
-
dataset.addValue(36000, "武汉", "Java编程思想");
-
dataset.addValue(34000, "武汉", "锋利的jQuery");
-
dataset.addValue(42000, "武汉", "SAP高级应用开发");
-
dataset.addValue(12000, "武汉", "精通Hibernate");
-
dataset.addValue(42000, "北京", "JavaScript高级程序设计");
-
dataset.addValue(40000, "北京", "Java编程思想");
-
dataset.addValue(34000, "北京", "锋利的jQuery");
-
dataset.addValue(18000, "北京", "SAP高级应用开发");
-
dataset.addValue(26000, "北京", "精通Hibernate");
-
return dataset;
- }
-
-
public static void main(String[] args) throws IOException {
- JFreeChart chart = ChartFactory.createBarChart(
-
"图书销量统计图",
-
"书名",
-
"图书销量(册)",
-
getDataset(),
-
PlotOrientation.VERTICAL,
-
true,
-
false,
-
false
- );
-
-
-
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();
-
- CategoryAxis axis = plot.getDomainAxis();
-
axis.setLabelFont(new Font("宋体", Font.BOLD, 22));
- axis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
-
axis.setTickLabelFont(new Font("宋体", Font.BOLD, 18));
-
-
- NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
-
numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));
-
-
-
FileOutputStream fos = null;
-
fos = new FileOutputStream("D:\\BookSales.jpg");
- ChartUtilities.writeChartAsJPEG(
-
fos,
-
1,
-
chart,
-
800,
-
600,
-
null
- );
-
- fos.close();
- }
- }
在此例中,创建CategoryDataset实例时调用了addValue方法,调用时传入了三个参数,其中第二个参数时一组数据的key,即在数据集中,数据按照“深圳”、“武汉”、“北京”三个地方进行了分类。
以上转自http://www.sunchis.com/html/java/javareport/2010/0317/81.html 若此链接还有效的话 请大家进入查看 !
分享到:
相关推荐
柱形图_labview柱状图_labview柱状图"是一个关于使用Labview创建柱状图的项目,主要关注的是数据的可视化表示,这对于数据分析和结果展示至关重要。 柱状图是一种常用的数据表示方式,它通过长条的高度来显示各个...
在Qt开发中,QtCharts模块是一个强大的工具,用于创建各种数据可视化图表,如柱状图、线图、饼图等。本教程将深入探讨如何利用QtCharts库来绘制柱形图,这对于数据展示和分析非常有帮助。我们将从以下几个方面进行...
总之,MATLAB的三维柱状图是展示多维数据的强大工具,而提供的"Untitled四种三维柱形图.m"文件则为学习者提供了深入理解和应用这一功能的机会。通过实践和探索这四个实例,初学者不仅可以掌握基本的绘图技巧,还能...
【CSS3 3D柱形图柱状图动画】是一个使用纯CSS3技术实现的动态效果,它展示了如何通过CSS3的属性和选择器来创建一个具有视觉吸引力的3D柱状图。在这个项目中,多个3D柱状图按照高度的递增顺序排列,呈现出一种立体且...
在LabVIEW中创建柱状图是一种常见的数据可视化方式,它可以帮助我们直观地理解一组数据的分布情况。柱状图V3.0-112.vi是一个LabVIEW程序,专门用于制作柱状图,适用于进行各种数据分析任务。下面将详细阐述如何在...
在给定的“Qt 柱状图绘制”主题中,我们将深入探讨如何在Qt环境中创建和定制柱状图,以及相关的重要概念和技术。 柱状图是一种常用的数据可视化工具,它使用垂直或水平的长条来表示数据的类别和相应的量。在Qt中,...
Java 使用 JFreeChart 创建柱形图是一种常见的数据可视化方法,尤其在数据分析和Web应用程序中。JFreeChart 是一个强大的开源库,它提供了多种图表类型,包括柱形图、饼图、线图等,使得开发者能够方便地将数据转化...
Java生成柱状图是一种在Java应用程序中展示数据的可视化方式,尤其适用于数据分析和报告。柱状图能够清晰地比较不同类别的数据量,是数据可视化的常见选择。在这个项目中,开发者提供了一个可以直接运行的解决方案,...
true, // 是否显示图例(对于简单的柱状图必须是false) false, // 是否生成工具 false // 是否生成URL链接 ); // 自定义图表样式 CategoryPlot plot = chart.getCategoryPlot(); CategoryAxis domainAxis = ...
关于使用软件时的注意事项,描述中提到不能绘制横置的柱状图,这表明软件的设计可能较为基础,只支持最常见的垂直柱状图。此外,检查最后是否有回车可能是为了确保输入的数据格式正确,避免因额外的字符导致程序错误...
使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js...
簇状柱状图和并列柱状图是柱状图的两种变体,簇状柱状图将不同组的数据并排展示,以便进行组间对比;并列柱状图则是将不同组别的柱子并列显示,也方便对比不同组别之间的差异。百分比柱状图是一种特殊形式的柱状图,...
在Bootstrap中,柱状图是一种常用的数据可视化元素,它可以帮助用户直观地理解各种数据的对比和分布。Bootstrap柱状图插件通常基于JavaScript库,如jQuery或Chart.js,来增强其功能和交互性。 柱状图是数据可视化的...
在MATLAB中,柱形图是一种非常常用的可视化工具,它能有效地展示分类数据或一系列数值数据的比较。本文将深入探讨如何使用MATLAB来创建柱形图,以及如何设置x轴和y轴作为数据坐标轴。 首先,让我们了解柱形图的基本...
在这个场景下,我们要讨论的是如何在WPF应用中利用MVVM模式来实现一个柱状图。以下是一些关键知识点: 1. **MVVM模式**:MVVM模式是软件开发中的一个重要概念,主要目的是解耦视图和业务逻辑。View负责显示用户界面...
在MATLAB中,绘制柱状图或条形图是一种常用的数据可视化方法,尤其适用于比较不同类别之间的数值。本文将详细讲解如何使用MATLAB绘制带有阴影的黑白柱状图,以及如何利用提供的`figure`文件进行进一步理解。 首先,...
设置echarts多个柱状图重叠或者叠加情况,堆叠是数据不会叠加,可以设置堆叠(stack),否则没有,是叠加横向柱状图,柱形图显示数值,以及设置隐藏一段方案(关联和不关联),鼠标移动上去显示的提示内容,动态改变...
在本文中,我们将深入探讨如何在WPF应用中使用Chart组件来创建柱状图和堆积柱状图。WPF(Windows Presentation Foundation)是.NET Framework的一部分,提供了丰富的UI设计能力,而Chart控件则是用于可视化数据的...
"Qt绘制柱状图,可以通用"这个程序包就是针对这一需求而设计的,它使用了流行的跨平台开发框架Qt以及Qwt库,实现了动态、交互式的柱状图展示功能。以下是对这个程序包所涉及知识点的详细解释: 1. **Qt框架**:Qt是...
iReport+JasperReport柱状图开发指南 本文详细介绍了使用iReport和JasperReport开发柱状图的过程,包括确定数据源类型、开发数据源类、设计图表属性等步骤。作者分享了自己的实践经验,遇到的困难和解决方法,旨在...