通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
更新时间:2023-09-04 16:56:01 阅读量: 教育文库 文档下载
- 群星议案通过代码推荐度:
- 相关推荐
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
1.1通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
1.1.1创建柱状图的应用实例
1、创建一个简单数据源(dataset)对象的代码示例
柱状图的dataset 一般是用CatagoryDataset接口(具体实现类是DefaultCategoryDataset),也会用 IntervalXYDataset接口。
获取一个演示用的简单数据集对象,也可以采用下面的代码来产生
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
其中:rowKeys表示X轴数据,columnKeys表示Y轴数据,data表示填充柱状图所要的实际数据(来自于数据库)。下面为代码示例:
private static CategoryDataset getDataSet(){
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "中科院计算所培训中心", "Java软件工程师班");
dataset.addValue(200, "中科院计算所培训中心", "http://www.77cn.com.cn软件工程师班");
dataset.addValue(300, "中科院计算所培训中心", "平面工程师班");
dataset.addValue(400, "中科院计算所培训中心", "网络工程师班");
dataset.addValue(500, "中科院计算所培训中心", "动漫工程师班");
return dataset;
}
2、创建组合数据集对象的代码示例
private static CategoryDataset getDataSet2() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "中科院计算所培训中心", "Java软件工程师班");
dataset.addValue(120, "沈阳培训中心", "Java软件工程师班");
dataset.addValue(130, "长沙培训中心", "Java软件工程师班");
dataset.addValue(220, "中科院计算所培训中心", "http://www.77cn.com.cn软件工程师班");
杨教授工作室,版权所有,盗版必究,1/12页
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
dataset.addValue(250, "沈阳培训中心", "http://www.77cn.com.cn软件工程师班");
dataset.addValue(280, "长沙培训中心", "http://www.77cn.com.cn软件工程师班");
dataset.addValue(320, "中科院计算所培训中心", "平面工程师班");
dataset.addValue(350, "沈阳培训中心", "平面工程师班");
dataset.addValue(380, "长沙培训中心", "平面工程师班");
dataset.addValue(420, "中科院计算所培训中心", "网络工程师班");
dataset.addValue(450, "沈阳培训中心", "网络工程师班");
dataset.addValue(480, "长沙培训中心", "网络工程师班");
dataset.addValue(520, "中科院计算所培训中心", "动漫工程师班");
dataset.addValue(550, "沈阳培训中心", "动漫工程师班");
dataset.addValue(580, "长沙培训中心", "动漫工程师班");
return dataset;
}
3、创建JFreeChart类的对象实例的代码示例
CategoryDataset dataset = getDataSet2();
FreeChart chart = ChartFactory.createBarChart3D(
"招生人数图", // 图表标题
"班别", // 目录轴(横坐标)的显示标签
"人数", // 数值轴(纵坐标)的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
org.jfree.chart.ChartFactory这个工厂类有createBarChart、createStackedBarChart、createBarChart3D、createStackedBarChart3D等方法,这几个工厂方法创建不同类型的柱状图;而其
杨教授工作室,版权所有,盗版必究,2/12页
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
中的PlotOrientation.VERTICAL 参加数让平行柱垂直显示,而 PlotOrientation.HORIZONTAL 则让平行柱水平显示。
createBarChart3D方法是ChartFactory工厂类里的一个方法,用于3D柱状图的生成,该类继承自JFreeChart。其中的八个参数分别代表:图形的标题、X轴标题、Y轴标题、dataset就是CategoryDataset 类的实例对象、显示标题、启用热键、启用超链接。
4、下面是对图表进行各种设置的代码示例
chart.setBackgroundPaint(Color.white); //设定背景色为白色
CategoryPlot categoryplot = chart.getCategoryPlot(); //获得 CategoryPlot
categoryplot.setBackgroundPaint(Color.lightGray); //设定图表数据显示部分背景色
categoryplot.setDomainGridlinePaint(Color.white); //横坐标网格线白色
categoryplot.setDomainGridlinesVisible(true); //可见
categoryplot.setRangeGridlinePaint(Color.white); //纵坐标网格线白色
categoryplot.setForegroundAlpha(0.5f); //设定透明度
categoryplot.setNoDataMessage("无记录内容"); //无记录异常显示
// 下面两行使纵坐标的最小单位格为整数
NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
杨教授工作室,版权所有,盗版必究,3/12页
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
BarRenderer barrenderer = (BarRenderer)categoryplot.getRenderer();
barrenderer.setDrawBarOutline(false); // Bar的外轮廓线不画
GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.blue,
0.0F, 0.0F, new Color(0, 0, 64)); //设定特定颜色
GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green,
0.0F, 0.0F, new Color(0, 64, 0));
GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, Color.red,
0.0F, 0.0F, new Color(64, 0, 0));
barrenderer.setSeriesPaint(0, gradientpaint); //给series1 Bar设定上面定义的颜色barrenderer.setSeriesPaint(1, gradientpaint1); //给series2 Bar 设定上面定义的颜色barrenderer.setSeriesPaint(2, gradientpaint2); //给series3 Bar 设定上面定义的颜色
CategoryAxis categoryaxis = categoryplot.getDomainAxis();//横轴上的 Lable 45度倾斜categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
杨教授工作室,版权所有,盗版必究,4/12页
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
5、生成和输出图表的相关功能实现代码
FileOutputStream fos_jpg = null;
String tempDirName=null,picFileName=null;
try {
File tempDir = new File(System.getProperty("java.io.tmpdir"));
tempDirName = tempDir.getAbsolutePath();
picFileName=tempDirName+"/studentBar.jpg";
fos_jpg = new FileOutputStream(picFileName);
ChartUtilities.writeChartAsJPEG(fos_jpg,1.0f,chart,600,500,null);
System.out.println("图表已经正确地保存到"+picFileName);
}
catch(IOException e){
System.out.println("不能正确地保存"+picFileName);
}
杨教授工作室,版权所有,盗版必究,5/12页
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
finally{
try {
fos_jpg.close();
}
catch (Exception e){
}
}
6、本实例完整的程序代码示例
package com.px1987.j2sejfreechart.demo;
import java.io.File;
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.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.Dataset;
public class BarChartDemo implements ChartInterface {
public BarChartDemo() {
}
public JFreeChart createOneChart() {
JFreeChart oneJFreeChart=ChartFactory.createBarChart(
"XXX学校的各个专业的人数统计结果", // 图表标题
"专业", // 目录轴(横坐标)的显示标签
"人数", // 数值轴(纵坐标)的显示标签
(DefaultCategoryDataset)getDataSet(),
PlotOrientation.HORIZONTAL, // 图表方向:水平(PlotOrientation.HORIZONTAL)、垂直(PlotOrientation.VERTICAL)
true, // 是否显示图例
杨教授工作室,版权所有,盗版必究,6/12页
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
false, // 是否显示tooltips
false);
return oneJFreeChart;
}
/*
private Dataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "中科院计算所培训中心", "Java软件工程师班");
dataset.addValue(200, "中科院计算所培训中心", "http://www.77cn.com.cn软件工程师班");
dataset.addValue(300, "中科院计算所培训中心", "平面工程师班");
dataset.addValue(400, "中科院计算所培训中心", "网络工程师班");
dataset.addValue(500, "中科院计算所培训中心", "动漫工程师班");
return dataset;
}
*/
public Dataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100, "中科院计算所培训中心", "Java软件工程师班");
dataset.addValue(120, "沈阳培训中心", "Java软件工程师班");
dataset.addValue(130, "长沙培训中心", "Java软件工程师班");
dataset.addValue(220, "中科院计算所培训中心", "http://www.77cn.com.cn软件工程师班");
dataset.addValue(250, "沈阳培训中心", "http://www.77cn.com.cn软件工程师班");
dataset.addValue(280, "长沙培训中心", "http://www.77cn.com.cn软件工程师班");
dataset.addValue(320, "中科院计算所培训中心", "平面工程师班");
dataset.addValue(350, "沈阳培训中心", "平面工程师班");
dataset.addValue(380, "长沙培训中心", "平面工程师班");
dataset.addValue(420, "中科院计算所培训中心", "网络工程师班");
杨教授工作室,版权所有,盗版必究,7/12页
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
dataset.addValue(450, "沈阳培训中心", "网络工程师班");
dataset.addValue(480, "长沙培训中心", "网络工程师班");
dataset.addValue(520, "中科院计算所培训中心", "动漫工程师班");
dataset.addValue(550, "沈阳培训中心", "动漫工程师班");
dataset.addValue(580, "长沙培训中心", "动漫工程师班");
return dataset;
}
public boolean outPutOneChart(String chartFileName, JFreeChart oneJFreeChart) { FileOutputStream fos_jpg = null;
File tempDir =null;
try {
tempDir = new File(System.getProperty("java.io.tmpdir"));
String tempDirName = tempDir.getAbsolutePath();
String picFileName=tempDirName+"/"+chartFileName;
fos_jpg = new FileOutputStream(picFileName);
ChartUtilities.writeChartAsJPEG(fos_jpg, oneJFreeChart, 700,600);
}
catch(IOException e){
System.out.println(" 在保存图时出现了错误,并且错误内容为"+e.getMessage());
return false;
}
return true;
}
public static void main(String[] args) {
BarChartDemo one=new BarChartDemo();
JFreeChart oneJFreeChart=one.createOneChart();
String chartFileName="myPie.jpeg";
one.outPutOneChart(chartFileName, oneJFreeChart);
}
杨教授工作室,版权所有,盗版必究,8/12页
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
}
注意:public static void writeChartAsJPEG(java.io.OutputStream out, float quality,
JFreeChart chart,
int width,
int height,
ChartRenderingInfo info)
throws java.io.IOException
7、测试本示例目前的应用效果
将出现下面的提示
8、图表为下面的结果(getDataSet方法)
杨教授工作室,版权所有,盗版必究,9/12页
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
或者
9、图表为下面的结果
杨教授工作室,版权所有,盗版必究,10/12页
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
或者
杨教授工作室,版权所有,盗版必究,11/12页
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)
杨教授工作室精心创作的优秀程序员职业提升必读系列资料
杨教授工作室,版权所有,盗版必究,12/12页
正在阅读:
通过代码实例跟我学JFreeChart 图表组件——在Java应用程序中创建柱状图的应用实例(Eclipse开发工具版本)09-04
轮胎保养03-26
电学大题答案06-27
九年级化学推断题常用的题眼集锦教学内容05-08
关于90后作文03-12
到皎平渡红军渡江纪念馆学习的心得体会01-23
2022年学校心理健康教育工作总结08-01
推进税源专业化管理的探讨11-29
楼梯练习题10-07
2015年中考数学第24题专题训练答案05-12
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 柱状
- 实例
- 跟我学
- 开发工具
- 图表
- 应用程序
- JFreeChart
- 组件
- 创建
- Eclipse
- 通过
- 版本
- 代码
- 应用
- Java
- Linux下C语言获取目录中的文件列表
- 免费师范生职业规划书
- KND主轴驱动器定向角度调整
- 春风化雨润心田
- 01_1简要操作提示
- 八年级英语上册Unit7Willpeoplehaverobots第4课时SectionB2c_3c课时测试题新版人教新目标版
- 2017年自贡市公需科目《大数据时代的互联网信息安全》考试题及答案
- 第3章 酶动力学
- 微机原理习题答案8章
- (农大2016年)大学英语Ⅲ在线作业1,2
- 2014年高考各地历史试题全部15套试题含答案
- 沂源县鲁村镇校园交通安全管理制度汇编
- 施工升降机施工应急预案及危险源辨识措施
- 苏教版 一年级上册数学第八单元10以内的加法和减法单元教案及教学反思
- 书法写字比赛格式纸(10种模板)
- 泗县餐饮场所气瓶安全专项整治工作总结
- 图书管理系统用户需求说明书
- 三铁六律
- 上海市处置特种设备事故应急预案
- 历代剪纸图样