1.jar包,jcommon.jar和jfreechart.jar,具体用哪个版本官网去down吧;

还有另外一个jar包,gnujaxp.jar,这个引入之后编译的时候会报错,应该是xsd校验的问题,索性直接去掉了,不影响实现。

2.具体实现:

  1. public static void main(String [] args){
      //数据源
  2.   String[] rk = getRowKeys(bid);
      double[][]data = getData(bid,rk);
      String[] colKeys = getColKey();
      // 准备数据
        CategoryDataset dataset = createDataset(rk, datacolKeys );
        // 生成JFreeChart对象
        JFreeChart freeChart = createChart(dataset);
        // 输出图片到浏览器
        response.setContentType("image/jpeg");
        OutputStream ops = response.getOutputStream();
        ChartUtilities.writeChartAsJPEG(ops, freeChart, 640, 480);
        ops.close();
      //保存图片到本地
      saveAsFile(freeChart, "yourPath", 600, 400);
  3.  
  4. }
  1. private String[] getRowKeys(byte[] bid) throws PicException {
  2. //实现
  3. }
  1. private double[][] getData(byte[] bid,String [] rk){
      //实现
  1. }
  1. private String[] getColKey() {
  2. //实现
  3. }
  1. public static CategoryDataset createDataset(String[] rowKeys, double[][] dataString[] colKeys) {
  2.  
  3. return DatasetUtilities.createCategoryDataset(rowKeys, colKeys, data);
  4. }
  1.  
  1. // 保存为文件
  2. public static void saveAsFile(JFreeChart chart, String outputPath, int weight, int height) {
  3. FileOutputStream out = null;
  4. try {
  5. File outFile = new File(outputPath);
  6. if (!outFile.getParentFile().exists()) {
  7. outFile.getParentFile().mkdirs();
  8. }
  9. out = new FileOutputStream(outputPath);
  10. // 保存为PNG
  11. //ChartUtilities.writeChartAsPNG(out, chart, 600, 400);
  12. // 保存为JPEG
  13. ChartUtilities.writeChartAsJPEG(out, chart, 600, 400);
  14.  
  15. out.flush();
  16. } catch (FileNotFoundException e) {
  17. e.printStackTrace();
  18. } catch (IOException e) {
  19. e.printStackTrace();
  20. } finally {
  21. if (out != null) {
  22. try {
  23. out.close();
  24. } catch (IOException e) {
  25. // do nothing
  26. }
  27. }
  28. }
  29. }
  1. // 根据CategoryDataset创建JFreeChart对象
  2. public static JFreeChart createChart(CategoryDataset categoryDataset) {
  3. // 创建JFreeChart对象:ChartFactory.createLineChart
  4. JFreeChart jfreechart = ChartFactory.createLineChart("当年每月排放总量", // 标题
  5. "月份", // categoryAxisLabel (category轴,横轴,X轴标签)
  6. "数值", // valueAxisLabel(value轴,纵轴,Y轴的标签)
  7. categoryDataset, // dataset
  8. PlotOrientation.VERTICAL, true, // legend
  9. false, // tooltips
  10. false); // URLs
  11. // 使用CategoryPlot设置各种参数。以下设置可以省略。
        //设置字体解决乱码问题
  12. CategoryPlot plot = (CategoryPlot) jfreechart.getPlot();
  13. jfreechart.getTitle().setFont(new Font("微软雅黑", Font.BOLD, 18));
  14. NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
  15. rangeAxis.setLabelFont(new Font("微软雅黑", Font.BOLD, 18));
  16.  
  17. CategoryAxis domainAxis = plot.getDomainAxis();
  18. domainAxis.setLabelFont(new Font("微软雅黑", Font.BOLD, 18));
  19.  
  20. // 背景色 透明度
  21. plot.setBackgroundAlpha(0.5f);
  22. // 前景色 透明度
  23. plot.setForegroundAlpha(0.5f);
  24. // 其他设置 参考 CategoryPlot类
  25.  
  26. return jfreechart;
  27. }

JFreeChart应用(生成折线图)的更多相关文章

  1. 利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全)

    利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全) 14.4 利用JFreeChart生成折线图 通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折 ...

  2. JFreeChart在制作折线图

    JFreeChart在制作折线图的时候可以使用两种不同的方式 package Line; import java.awt.Color; import java.awt.Font; import org ...

  3. chart.js插件生成折线图时数据普遍较大时Y轴数据不从0开始的解决办法[bubuko.com]

    chart.js插件生成折线图时数据普遍较大时Y轴数据不从0开始的解决办法,原文:http://bubuko.com/infodetail-328671.html 默认情况下如下图 Y轴并不是从0开始 ...

  4. struts2整合JFreechart 饼图、折线图、柱形图

    struts2整合JFreechart 饼图.折线图.柱形图 上效果图: 当然可以将数据导出图片格式存储.具体下的链接里的文件有保存成图片的操作. 因为是strust2整合JFreechart,所以s ...

  5. 使用Highcharts生成折线图_at last

    //数据库数据的读取,读取数据后数据格式的转换,还有highchart数据源的配置,伤透了脑筋. anyway,最终开张了.哈哈! 数据库连接:conn_orcale.php <?php $db ...

  6. JFreeChart应用实例-折线图

    http://www.tuicool.com/articles/Nr2Yna JFreeChart在制作折线图的时候可以使用两种不同的方式 package Line; import java.awt. ...

  7. JFreeChart绘制XY折线图(工具类设计)

    准备用Java写通信的仿真平台作为毕业设计,相比matlab绘图,Java绘图需要自己去写很多工具类,博主在这采用了JFreeChart的开源解决方案,摸索着自己写了一个XY折线图工具类,话不多说贴源 ...

  8. highcharts实例教程一:结合php与mysql生成折线图

    Highcharts是一款纯javascript和html5编写的图表库,不仅几乎能兼容所有pc浏览器,而且对ios和android手机端的兼容 性也不错,它能够很简单便捷的在Web网站或Web应用中 ...

  9. 使用Highcharts生成折线图与曲线图

    折线图与曲线图可以显示随时间而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势.本文将结合Highcharts,生成一个城市气温变化折线图和一个随时间动态即时显示CPU走势的曲线图. 如果 ...

随机推荐

  1. iOS开发——高级篇——FMDB 数据库简单使用

    #import <Foundation/Foundation.h> @interface UserDB : NSObject // 把userDB设计成一个单例类 + (id)shareI ...

  2. http://www.freetds.org/userguide/what.htm

    FreeTDS is re-implementation of C libraries originally marketed by Sybase and Microsoft SQL Server. ...

  3. Enterprise Architect 生成项目类图

    Enterprise Architect使用教程: https://blog.csdn.net/chenglc1612/article/details/81083151 主要流程 --到此-自动生成完 ...

  4. P4455 [CQOI2018]社交网络

    这个题仔细一看就是生成树计数,但是我这个记性是真的差,早就忘了.复习了一下高斯消元,然后这个题就是很裸的题了. ps:高斯消元解行列式的时候要取反. 题干: 题目背景 当今社会,在社交网络上看朋友的消 ...

  5. Navicat: Can't create a procedure from within another stored routine

    测试调用mysql的存储过程,于是用Navicat写,结果报这个错误,源代码如下: CREATE PROCEDUREQueryDate() BEGIN       SELECTCURDATE(); E ...

  6. 461. Hamming Distance(汉明距离)

    The Hamming distance between two integers is the number of positions at which the corresponding bits ...

  7. TS数据流PAT和PMT分析(转载)

    转自:http://www.cnblogs.com/hjj801006/p/3837435.html TS流,是基于packet的位流格式,每个packet是188个字节或者204个字 节(一般是18 ...

  8. ubuntu /etc/profile和/etc/environment的比较 (转载)

    转自:http://blog.csdn.net/teamlet/article/details/8257853 先将export LANG=zh_CN加入/etc/profile ,退出系统重新登录, ...

  9. Ruby module里的self

    创建: 2018/03/15 更新: 2018/03/22 把标题ruby首字母大写 都知道def self.方法名 来定义类方法 class SampleClass def self.class_m ...

  10. [Swift]库函数atoi:将字符串内容转换为整数

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...