jFreeChart利用CategoryDatase,ChartFactory.createBarChart生成的柱状图
- package com.potevio.rnd;
- import java.io.File;
- import java.io.FileNotFoundException;
- 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.CategoryPlot;
- import org.jfree.chart.plot.PlotOrientation;
- import org.jfree.data.category.CategoryDataset;
- import org.jfree.data.general.DatasetUtilities;
- public class CreateJFreeChartBar {
- /**
- * 创建JFreeChart Bar Chart(柱状图)
- */
- public static void main(String[] args) {
- //步骤1:创建CategoryDataset对象(准备数据)
- CategoryDataset dataset = createDataset();
- //步骤2:根据Dataset 生成JFreeChart对象,以及做相应的设置
- JFreeChart freeChart = createChart(dataset);
- //步骤3:将JFreeChart对象输出到文件,Servlet输出流等
- saveAsFile(freeChart, "F:\\jfreechart\\bar.png", 500, 400);
- }
- //保存为文件
- public static void saveAsFile(JFreeChart chart, String outputPath, int weight, int height) {
- FileOutputStream out = null;
- try {
- File outFile = new File(outputPath);
- if (!outFile.getParentFile().exists()) {
- outFile.getParentFile().mkdirs();
- }
- out = new FileOutputStream(outputPath);
- //保存为PNG文件
- ChartUtilities.writeChartAsPNG(out, chart, weight, height);
- //保存为JPEG文件
- //ChartUtilities.writeChartAsJPEG(out, chart, weight, height);
- out.flush();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (out != null) {
- try {
- out.close();
- } catch (IOException e) {
- //do nothing
- }
- }
- }
- }
- //根据CategoryDataset生成JFreeChart对象
- public static JFreeChart createChart(CategoryDataset categoryDataset) {
- JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo", //标题
- "产品", //categoryAxisLabel (category轴,横轴,X轴的标签)
- "数量", //valueAxisLabel(value轴,纵轴,Y轴的标签)
- categoryDataset, // dataset
- PlotOrientation.VERTICAL,
- true, // legend
- false, // tooltips
- false); // URLs
- //以下的设置可以由用户定制,也可以省略
- CategoryPlot plot = (CategoryPlot) jfreechart.getPlot();
- //背景色 透明度
- plot.setBackgroundAlpha(0.5f);
- //前景色 透明度
- plot.setForegroundAlpha(0.5f);
- //其它设置可以参考 CategoryPlot
- return jfreechart;
- }
- /**
- * 创建CategoryDataset对象
- *
- */
- public static CategoryDataset createDataset() {
- String []rowKeys = {"One", "Two", "Three"};
- String []colKeys = {"1987", "1997", "2007"};
- double [][] data = {
- {50, 20, 30},
- {20, 10D, 40D},
- {40, 30.0008D, 38.24D},
- };
- //也可以使用以下代码
- //DefaultCategoryDataset categoryDataset = new DefaultCategoryDataset();
- //categoryDataset.addValue(10, "rowKey", "colKey");
- return DatasetUtilities.createCategoryDataset(rowKeys, colKeys, data);
- }
- }
package com.potevio.rnd; import java.io.File;
import java.io.FileNotFoundException;
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.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities; public class CreateJFreeChartBar {/**
* 创建JFreeChart Bar Chart(柱状图)
*/
public static void main(String[] args) {
//步骤1:创建CategoryDataset对象(准备数据)
CategoryDataset dataset = createDataset();
//步骤2:根据Dataset 生成JFreeChart对象,以及做相应的设置
JFreeChart freeChart = createChart(dataset);
//步骤3:将JFreeChart对象输出到文件,Servlet输出流等
saveAsFile(freeChart, "F:\\jfreechart\\bar.png", 500, 400);
} //保存为文件
public static void saveAsFile(JFreeChart chart, String outputPath, int weight, int height) {
FileOutputStream out = null;
try {
File outFile = new File(outputPath);
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdirs();
}
out = new FileOutputStream(outputPath);
//保存为PNG文件
ChartUtilities.writeChartAsPNG(out, chart, weight, height);
//保存为JPEG文件
//ChartUtilities.writeChartAsJPEG(out, chart, weight, height);
out.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
//do nothing
}
}
}
} //根据CategoryDataset生成JFreeChart对象
public static JFreeChart createChart(CategoryDataset categoryDataset) {
JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo", //标题
"产品", //categoryAxisLabel (category轴,横轴,X轴的标签)
"数量", //valueAxisLabel(value轴,纵轴,Y轴的标签)
categoryDataset, // dataset
PlotOrientation.VERTICAL,
true, // legend
false, // tooltips
false); // URLs //以下的设置可以由用户定制,也可以省略
CategoryPlot plot = (CategoryPlot) jfreechart.getPlot();
//背景色 透明度
plot.setBackgroundAlpha(0.5f);
//前景色 透明度
plot.setForegroundAlpha(0.5f);
//其它设置可以参考 CategoryPlot return jfreechart;
} /**
* 创建CategoryDataset对象
*
*/
public static CategoryDataset createDataset() { String []rowKeys = {"One", "Two", "Three"};
String []colKeys = {"1987", "1997", "2007"}; double [][] data = {
{50, 20, 30},
{20, 10D, 40D},
{40, 30.0008D, 38.24D},
}; //也可以使用以下代码
//DefaultCategoryDataset categoryDataset = new DefaultCategoryDataset();
//categoryDataset.addValue(10, "rowKey", "colKey"); return DatasetUtilities.createCategoryDataset(rowKeys, colKeys, data);
}
}
运行效果图:
jFreeChart利用CategoryDatase,ChartFactory.createBarChart生成的柱状图的更多相关文章
- 利用Maven把项目生成jar包供其他项目使用
每当搭建框架时,第一步就是为系统整理一个接一个的jar包.用多了就开始深思,如何把自己的项目也整成jar包,供他人使用呢? 近期一直在看徐晓斌所著:<Maven实战>.因自己学识不够,只是 ...
- 利用strut2标签自动生成form前端验证代码
利用strut2标签自动生成form前端验证代码,使用到的技术有1.struts2标签,如<s:form> <s:textfieled>2.struts2读取*Validati ...
- 【转】Hibernate利用@DynamicInsert和@DynamicUpdate生成动态SQL语句
原文链接:http://www.cnblogs.com/quanyongan/p/3152290.html 最近在使用Hibernate4中,发现两个很有奥秘的注解 @DynamicInsert 和 ...
- 利用TPC-H为MYSQL生成数据
## 利用TPC-H为MYSQL生成数据 导言 这篇文章是看了joyee写的TPC-H数据导入MySQL教程以及另一篇网上的MySQL TPCH测试工具简要手册 后写的,有些内容是完全转载自以上两篇文 ...
- 利用ir.sequence自动生成序列号
利用ir.sequence自动生成序列号 什么是序列号 可以这么理解,我有一个产品序号,编码的前缀是SOP,后缀是0001~9999的序号,没生成一个产品就自动流水加一,序列号不会重复,odoo中的i ...
- webapi 利用webapiHelp和swagger生成接口文档
webapi 利用webapiHelp和swagger生成接口文档.均依赖xml(需允许项目生成注释xml) webapiHelp:微软技术自带,仅含有模块.方法.请求-相应参数的注释. swagge ...
- Hibernate利用@DynamicInsert和@DynamicUpdate生成动态SQL语句
最近在使用Hibernate4中,发现两个很有奥秘的注解 @DynamicInsert 和 @DynamicUpdate 如果是在配置文件的话那就是dynamic -insert 和 dynamic- ...
- 利用PHP QR Code生成二维码(带logo)
转自:http://www.cnblogs.com/txw1958/p/phpqrcode.html HP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示 ...
- NASNet学习笔记—— 核心一:延续NAS论文的核心机制使得能够自动产生网络结构; 核心二:采用resnet和Inception重复使用block结构思想; 核心三:利用迁移学习将生成的网络迁移到大数据集上提出一个new search space。
from:https://blog.csdn.net/xjz18298268521/article/details/79079008 NASNet总结 论文:<Learning Transfer ...
随机推荐
- 京东JOS API 接入使用笔记
商户开设了京东店.淘宝店,最近打算使用京东物流,需要使用京东仓库(京东店的订单使用京仓发货,淘宝等其他店使用京东云仓)发货,所以得从自家的ERP与京东沧海(ECLP)API对接,实现收发存. 首先得在 ...
- JS事件响应的学习总结
点击事件:ocnlick 鼠标经过事件:onmouseover 鼠标移开事件:onmouseout 获得焦点事件:onfocus 失去焦点事件:onblur 内容选中事件:onselect 文本框内容 ...
- YAML文件解析
YAML是“另一种标记语言”的外语缩写,YAML 是一种比JSON(json多层次{ 与 [ 会被搞晕的)更直观的表现形式,展示上更易查错和关系描述.因为不需要一个专业工具就可以排查正确性.YAML目 ...
- DDD理论学习系列(11)-- 工厂
DDD理论学习系列--案例及目录 1.引言 在针对大型的复杂领域进行建模时,聚合.实体和值对象之间的依赖关系可能会变得十分复杂.在某个对象中为了确保其依赖对象的有效实例被创建,需要深入了解对象实例化逻 ...
- 【学习笔记】C# 抽象类
抽象类 有时设计类仅仅为了表达抽象的概念,不与具体的事物相联系,只作为其派生类的基类使用,用来描述所有子类的共同特性,这时我们可以使用抽象类 抽象类不能被实例化,抽象类可以包含抽象方法 抽象方法 抽象 ...
- 基于.NET CORE微服务框架 -谈谈surging的服务容错降级
一.前言 对于不久开源的surging受到不少.net同学的青睐,也受到.net core学习小组的关注,邀请加入.NET China Foundation以方便国内.net core开源项目的推广, ...
- MySql的事务隔离级别
一,未提交读 顾名思义,未提交读就是能够读取到事务尚未提交所产生的数据.这种隔离方式会产生一种问题就是“脏读”. 脏读: 比方说有两个事务A B 在A事务里面将数据的id更改为2,但是A事务尚未提 ...
- (转)每天一个linux命令(50):crontab命令
场景:在学习Linux环境下自动部署项目时候,可以通过crontab命令设定定时任务,实现服务端项目的自动部署! 前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系 ...
- (转)认识java中的堆和栈
栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new. ...
- iOS开发实战-时光记账Demo 网络版
之前写了一个本地数据库版本 戳这里 现在这个就是增加了后台 登录注册页面以及web的上传记录展示页面 含有少量php有兴趣可以看下 另外demo中包括数据库操作.json.网络请求等都没有用到第三方库 ...