用Jfree实现条形柱状图表,java代码实现

用Jfree实现条形柱状图表,java代码实现。可经经常使用于报表的制作,代码自己主动生成后能够自由查看。能够自由配置图表的各个属性,用来达到自己的要求和目的
package test1;import org.jfree.chart.*;
import org.jfree.chart.plot.*;
import org.jfree.chart.labels.*;
import org.jfree.data.category.*;import java.awt.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;import org.jfree.ui.*;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.servlet.*;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.general.DatasetUtilities;import com.dao.DBConnection;public class JfreeChart {public static void main(String[] args) throws IOException, SQLException {// TODO Auto-generated method stubdouble[][] data = new double[][] {{ 1230, 1110, 1120, 1210, 720, 750, 860, 800, 1230, 1110, 1120,1210, 720, 750, 860, 800, 1230, 1110, 1120, 1210, 720,750, 860, 800 },{ 720, 750, 860, 800, 1230, 1110, 1120, 1210, 720, 750, 860,800, 720, 750, 860, 800, 1230, 1110, 1120, 1210, 720,750, 860, 800 } };String[] rowKeys = { "a", "b" };String[] columnKeys = { "0", "1", "2", "3", "4", "5", "6", "7", "8","9", "10", "11", "12", "13", "14", "15", "16", "17", "18","19", "20", "21", "22", "23" };CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);JFreeChart chart = ChartFactory.createBarChart(getNextDay() + "日交易量","时间(/h)", "交易量", dataset, PlotOrientation.VERTICAL, true, true,false);CategoryPlot plot = chart.getCategoryPlot();// 设置网格背景颜色plot.setBackgroundPaint(Color.white);// 设置网格竖线颜色plot.setDomainGridlinePaint(Color.pink);// 设置网格横线颜色plot.setRangeGridlinePaint(Color.pink);// 显示每一个柱的数值,并改动该数值的字体属性BarRenderer renderer = new BarRenderer();// renderer.setBaseItemLabelGenerator(new// StandardCategoryItemLabelGenerator());// renderer.setBaseItemLabelsVisible(true);// 默认的数字显示在柱子中,通过例如以下两句可调整数字的显示// 注意:此句非常关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题// renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(// ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));// renderer.setItemLabelAnchorOffset(10D);// 设置每一个地区所包括的平行柱的之间距离renderer.setItemMargin(0.05);plot.setRenderer(renderer);// 设置地区、销量的显示位置// 将下方的“标注”放到上方// plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);// 将默认放在左边的“销量”放到右方// plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);drawToOutputStream("src//a.jpg", chart);}/*** step3: 输出图表到指定的磁盘* * @param destPath* @param chart*/public static void drawToOutputStream(String destPath, JFreeChart chart) {FileOutputStream fos = null;try {fos = new FileOutputStream(destPath);// ChartUtilities.writeChartAsJPEG(ChartUtilities.writeChartAsPNG(fos, // 指定目标输出流chart, // 图表对象1000, // 宽500, // 高null); // ChartRenderingInfo信息} catch (IOException e) {e.printStackTrace();} finally {try {fos.close();} catch (IOException e) {e.printStackTrace();}}}public static String getNextDay() {Calendar calendar = Calendar.getInstance();calendar.add(Calendar.DATE, -1); // 得到前一天Date date = calendar.getTime();DateFormat df = new SimpleDateFormat("yyyy-MM-dd");// System.out.println(df.format(date));return df.format(date);}
}

显示生成结果:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264580.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bzoj 2160: 拉拉队排练

Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了。拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛。所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多么的重要。拉拉队的选拔工…

java long double精度丢失_long long类型转double类型部分精度丢失问题

我最近做了一道题,一个64位(unsigned __int64)范围内的数输出其除以1000的值,并按四舍五入保留小数点后三位。我刚开始直接写WA,结果发现当数比较大的时候,结果后几位精度总会丢失,只好手动模拟了一个,水过…

从服务器上自动更新系统补丁

对于经常重系统的用户或公司,每次安装系统后,必须得从微软网站上面下载补丁,这样很浪费时间. 如何从自己服务器上自动更新系统补丁,方法如下: 服务器端 服务器端需要安装一个更新服务器软件,如:SUS (下载地址http://www.onlinedown.net/soft/35844.htm) 客户端设置 开始 -- 运行…

搭建于 Cubieboard 之上的超小型实时监控平台 - mjpg篇

2019独角兽企业重金招聘Python工程师标准>>> 运行于 Cubieboard开发板 之上的个人笔记博客 http://cb.e-fly.org:81/archives/system-camera-monitor-mjpg-streamer.html 原文作者:Cannikin原文链接:http://forum.cubietech.com/forum ... p…

架构-浅谈MySQL数据库优化

主从复制博文:http://lizhenliang.blog.51cto.com/7876557/1290431 读写分离博文:http://lizhenliang.blog.51cto.com/7876557/1305083 MySQL-MMM博文:http://lizhenliang.blog.51cto.com/7876557/1354576 (一)数据库部…

java base64解码出错_Java Base64解码错误及解决方法

问题提出:自己在做一个小网站充当练手,但是前端图片经过base64加密后传往后端在解码。但是一直都有问题,请大神赐教public static string base64toimg(string src) throws ioexception {string uuid uuid.randomuuid().tostring();stringbui…

PPT图片内嵌文字效果

【摘要】在报纸杂志上我们经常看到,有些图片中可以嵌入文字,如下图所示的效果:今天我们一起来学习一下这种效果是怎样生成的。 【正文】以下的操作步骤为PowerPoint 2013版本。 一 插入图片并编辑图片在【插入-联机图片】中搜索需要的图片。…

[天地君亲若追问 枉为知音百年羞]2008.06.07 晃荡在芳华

洞房悄悄静悠悠,花烛高烧暖心头, 喜气阵阵难抑止,这姻缘百折千磨方成啊就。 三月来,屡托刘兄把亲求,每遭见拒愿难酬, 从此我诗书五经无心看,三餐茶饭懒下喉, 日卧书斋愁脉脉&#xf…

基于mykernel完成多进程的简单内核

学号351 原创作品转载请注明出处 https://github.com/mengning/linuxkernel/ mykernel简介 mykernel是由孟宁老师建立的一个用于开发您自己的操作系统内核的平台,基于Linux Kernel 3.9.4 source code mykernel的源代码 https://github.com/mengning/mykernel &…

iOS开发:通过经纬度获得城市、省份等信息

iOS系统自带定位,用CLLocationManager就可以轻松的实现定位的操作,获得的是一组经纬度,当然,也可以根据给出的经纬度获取相应的省份、城市、街道等信息,下面就看一个根据经纬度获得城市的demo:因为获取经纬…

.net内存回收与Dispose﹐Close﹐Finalize方法

一. net的对象使用一般分为三种情况﹕ 1.创建对象 2.使用对象 3.释放对象 二.创建对象 1.创建对象实际分为两个步骤﹕变量类型宣告和初始化对象 2.变量类型宣告(declare),如﹕ FileStream fs这行代码会在当前的变量作用域空间(栈或堆)里建立一个叫做fs的变量﹐至少四个字节吧(因…

19、Qt线程(四):继承QRunnable类

一、功能说明 1、通过继承QRunnable,重写run的方式实现多线程 2、点击“开始”按钮启动子线程; 二、项目创建 1、新建Qt Widgets Application应用,名称为Runnable,基类选择QMainWindow; 2、MainWindow.ui中放入一…

cocos2dx java 调用lua_cocos2dx之C++调用Lua

1.引入头文件#include "cocos2d.h"#include "CCLuaEngine.h"USING_NS_CC;using namespace std;extern "C"{#include "lua.h"#include "lualib.h"#include "lauxlib.h"}2导入Lua文件如果是cocos2dx的Lu…

93号涨0.86元售6.2元/升 20日油价正式上调

93号涨0.86元售6.2元/升 20日油价正式上调 据悉,自6月20日起汽油、柴油价格每吨提高1000元,航空煤油价格每吨提高1500元。 上调后全国汽油、柴油平均零售价分别为:97号汽油6.6元/升,93号汽油6.2元/升,90号汽油5.8元/升…

eclipse 新建java无scr_解决eclipse中没有js代码提示的问题

自学js,发现eclipse中不管js文件、html文件、jsp文件没有都没js代码的提示,对于js代码也不报错,有时候就因为单词敲错却查了很久没查出来,很烦很难受。在网上找了很多方法,都没有解决,特别是有个在javascri…

美女MVP专访

博客园专访:中国最美丽的MVP请大家在专访页面中发表评论。制作花絮:在测试专访页面时,不小心发布到了新闻频道,立即引来了园友的热情评论。 推荐小组:转载于:https://www.cnblogs.com/cmt/archive/2008/07/14/1241994.html

Flask + vue 前后端分离的 二手书App

一个Flask vue 前后端分离的 二手书App 效果展示: https://blog.csdn.net/qq_42239520/article/details/88534955 所用技术清单 项目地址:项目地址 vue代码地址:vue代码地址 项目部分过程笔记: 后台: 项目结构 Second…

Mac OS X Glut build instructions

Mac OS X Glut build instructions(在Mac上用glut库编写OpenGL程序) Wentao Sun, Autodesk, Inc. 1. Building GLUT apps under Mac OS X There are only a few modifications you need to make to the robot.c sample to get it compiled on your Mac. These instruction…

跨域方法

1.jsonp,原理利用script的src属性(像img,iframe等有src属性的都支持跨域)引入js文件,并在引入成功后调用回调函数,数据通过参数的形式传过来。 例: 2.window.name 3.document.domain 4.h5的方法:window.postMessage 5.flash 6.COR…

java多线程之wait_(三)java多线程之wait notify notifyAll

引言今天我打算讲一下Object.wait,Object.notify,Object.notifyAll这三个方法. 首先我们查看一下api看看,官方api对这几个方法的介绍.理论Object.wait(): 导致当前线程一直等待,直到另一外一个线程用同一个对象调用Object.notify或Object.notifyAll方法.换种说法,就是调用Objec…