用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 stub
double[][] 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);
}
}

显示生成结果:

用Jfree实现条形柱状图表,java代码实现的更多相关文章

  1. 基于 WebGL 的 3D 动态柱状图表

    发现现在工业SCADA上或者电信网管方面用图表的特别多,虽然绝大部分人在图表制作方面用的是echarts,他确实好用,但是有些时候我们不能调用别的插件,这个时候就得自己写这些美丽的图表了,然而图表轻易 ...

  2. 使用D3绘制图表(5)--水平柱状图表

    绘制水平柱状图表的方法也不是很难,首先在svg中插入g,然后在g中插入rect. 1.html代码 <!DOCTYPE html> <html> <head> &l ...

  3. ECharts图表之柱状折线混合图

    Echarts 官网主页  http://echarts.baidu.com/index.html Echarts 更多项目案例  http://echarts.baidu.com/echarts2/ ...

  4. Python的可视化包 – Matplotlib 2D图表(点图和线图,.柱状或饼状类型的图),3D图表(曲面图,散点图和柱状图)

    Python的可视化包 – Matplotlib Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型地2D图表和一些基本的3D图表.Matplotlib最早是为了可 ...

  5. 使用Jfree实现吧条形图,java代码

    使用Jfree实现吧条形图,java代码.它可能在生产的报告被常用,之后,主动生成自己的代码,可以随意查看.自由地配置图表的各种性质,为了达到他们的要求和目标 package test1; impor ...

  6. iOS 使用Charts框架 折线,柱状,K线,饼状,雷达全攻略

    我是前言: 大约几个月前我在某平台写了一篇文章, 文中简单地介绍了Charts两种图表的样式的使用, 不过有种意犹未尽的感觉, 利用周末的空闲时间再次看了看, 有了新的收获, 今天发出来,分享给大家, ...

  7. 用echartsjs 实现动态绘制折线、柱状等图形,并实现多图联动效果

    echarts对于大数据处理后绘制折线图,柱形图等等的效果和速度都很好.下面我们介绍 怎么把封装的数据列表解析出来,动态绘图,并且实现鼠标联动效果引入js文件: <script type=&qu ...

  8. 使用WinForm Chart控件 制作饼装,柱状,折线图

    http://blog.csdn.net/dream2050csdn/article/details/53510340 chart控件的属性很多,主要用到Chart控件图表区域的属性有五个属性 1.A ...

  9. Echarts的柱状统计图出现x轴统计时间出现间隔显示的问题

    今天在使用Echarts的柱状统计图出现x轴统计时间出现间隔显示的问题: 数据都拿到了,放到Json数组都是完整的, 展现是时候 如下图:

随机推荐

  1. 二叉排序树的创建删除中序输出&&平衡树

    #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #inclu ...

  2. Eclipse代理设置

    这段时间公司实行代理上网,不仅通过浏览器上网须要不停的输入username和password,在本地调试程序时候Eclipse居然也弹出框让输入username和password. 如图: 解决的方法 ...

  3. IoC容器Autofac正篇之解析获取(五)

    解析获取的方式有如下几种: Resolve class Program { static void Main(string[] args) { var builder = new ContainerB ...

  4. javascript的本地存储 cookies、localStorage

    一.cookies 本地存储 首先是常用的cookies方法,网上有很多相关的代码以及w3cSchool cookies. // 存储cookies function setCookie(name,v ...

  5. UIScrollView的大全

    UIScrollView是iOS中提供滚动控件,用于解决当内容区域大于可视区域时不能完全查看的问题,UISrollView就可提供滑动方式查看全部内容,UISrollView是所有滚动视图的基类,后期 ...

  6. Myeclipse中如何修改Tomcat的端口号

    一,使用 Myeclipse 中自带的 tomcat 右键 configure 弹出窗口 在 port Number 中修改 端口号即可: 二,配置的 tomcat 如果用上述的方法,只能打开这样的窗 ...

  7. 在word中使用notepad++实现代码的语法高亮

    转载自:http://blog.csdn.net/woohello/article/details/7621651 有时写文档时需要将代码粘贴到word中,但直接粘贴到word中的代码虽能保持换行与缩 ...

  8. 逛园子,看到个练习题,小试了一把(淘宝ued的两道小题)

    闲来无事,逛园子,充充电.发现了一个挺有意思的博文,自己玩了一把. 第一题:使用 HTML+CSS 实现如图布局,border-widht 1px,一个格子大小是 60*60,hover时候边框变为橘 ...

  9. zabbix之1监控概念

    1.通过通用的snmp监控,无需代理端 2.通过snmp代理 snmp代理的工作原理:在被监控端设置代理,代理不断的获取本地数据,而管理端定期通过代理获取监控数据. snmp目前有v1,v2,v3三种 ...

  10. Python解析json字符串

    {"status":0,"result":{"location":{"lng":116.47847460177,&quo ...