Java实现图表趋势图的展现

java后端实现生成折线图等统计图表 需求:java通过poi往word里插入统计图,例如用水用电趋势图,企业纳税折线图等。 方案一:通过jfeechart实现,代码如下: import java.awt.Color; import java.awt.Font; import java.io.File; import java.io.IOException; import java.text.NumberFormat; import ... 阅读详情

JS:

//评分趋势
progressLoadNew({
body: '#lineScore'
});
$.post(basePath + 'pfmReport/getExportReportKpiChartScoreData', {
dbid: dbid,
owner: owner,
table_name: tableName,
checkrecorderId: flcheckrecordid,
startTime: $('#beginTime').datetimebox('getValue'),
endTime: $('#endTime').datetimebox('getValue')
}, function(data) {
data = typeof data == 'string' ? JSON.parse(data) : data;

var obj, series = [];
series.push({
name: '评分趋势',
type: 'line',
data:data.data
});
obj = initBrokenLine('lineScoreView', data.dateList, [''], series, data.X_axis, data.Y_axis);
        setTimeout(function() {
report.score = obj.getDataURL();
        }, 1000);
progressCloseNew({
body: '#lineScore'
});
});
}


// 初始化折线图
function initBrokenLine(id, dateList, name, series, X_axis, Y_axis) {
    var options = {
        tooltip: {
            trigger: 'axis'
        },
        legend: {
            data: name,
        },
        xAxis: [{
            type: 'category',
            boundaryGap: false,
            data: dateList,
            name:X_axis,
        }],
        yAxis: [{
            type: 'value',
            name:Y_axis,
        }],
        grid: {
            x: 100,
            x2: 100,
        },
        series: series
    };
    var eChartColumn = echarts.init(document.getElementById(id));
    eChartColumn.setOption(options, true);
    return eChartColumn;
}




controller:

/**
* 
* @param tableId
* @param dbid
* @return
*/
@ResponseBody
@RequestMapping("/getExportReportKpiChartScoreData")
public Map<String, Object> getExportReportKpiChartScoreData(String dbid,String owner,String table_name,String checkrecorderId,String startTime,String endTime){
if(dbid==null||owner==null||table_name==null){
logger.error("关键参数为空");
             return  null;
}
Map<String, Object> data = pfmReportServiceImpl.getExportReportKpiChartScoreData(dbid, owner,table_name,checkrecorderId,startTime,endTime);
if(data.size()>0){
return data;
}
     return null;
}



service:

PropertyHelper propertyHelper = new PropertyHelper(
PathHelper.getClassesPath(this.getClass()) + "com/snc/hottablemanage/config/export.properties");
int days = Integer.parseInt(propertyHelper.getProperty("exportDays"));



   String temp=" SELECT DISTINCT"+ 
" a.score,"+
" a.timeid,"+
"   b.flchecktime"+ 
"   FROM"+ 
"   htm_pfm_table_score a,"+ 
"   htm_basejob_checkrecords b"+
"   WHERE 1=1"+
"   AND a.flcheckrecordid=b.flid"+
"   AND a.dbid =?"+
"   AND a.owner = ?"+
"   AND a.table_name =? ";
      

//起始时间不为空
if(startTime!=null&&!startTime.equals("")){
        temp+=" AND b.flchecktime>='"+startTime+"'";
        }
        //结束时间不为空
if(endTime!=null&&!endTime.equals("")){
        temp+=" AND b.flchecktime<='"+endTime+"'";
        }

//如果日期没有传进来,取距离flchecktime最大值前N天的记录
if(StringUtil.isEmpty(startTime)&&StringUtil.isEmpty(endTime)){
HtmBasejobCheckrecords hbc = htmBasejobCheckrecordsDaoImpl.get(HtmBasejobCheckrecords.class,Long.parseLong(checkrecorderId));
if(hbc==null||hbc.getFlchecktime()==null){
return null;
}
Date endDate = hbc.getFlchecktime();
Calendar cal = Calendar.getInstance();
cal.setTime(endDate);
endDate = cal.getTime();
cal.set(Calendar.DATE, cal.get(Calendar.DATE)-days);
Date startDate = cal.getTime();

SimpleDateFormat  sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String endDate_=sdf.format(endDate);
String startDate_=sdf.format(startDate);

temp+=" AND b.flchecktime>='"+startDate_+"' AND  b.flchecktime<='"+endDate_+"'";
}


Map<String,Object> result = new HashMap<String,Object>();
result.put("X_axis","时间");
result.put("Y_axis","得分");

List<Object>  params=new ArrayList<Object>();
params.add(dbid);
params.add(owner.toString());
params.add(table_name.toString());
List<Object[]> list = htmPfmReportDaoImpl.findBySql(temp, params.toArray());


Map<String,Object>  map=new HashMap<String,Object>();
List<String> dateList = new ArrayList<String>();
List<Integer> dataList = new ArrayList<Integer>();
for (Object[] objects : list) {
String flchecktime=objects[2]==null?"":objects[2].toString();
Integer score=objects[0]==null?0:Integer.parseInt(objects[0].toString());
map.put(flchecktime, score);
}

//对日期排序
if(map!=null){
/*将Map数据放到list里,然后以Map的key来对list排序*/
List<Map.Entry<String, Object>> mapList = new ArrayList<Map.Entry<String, Object>>(map.entrySet());
Collections.sort(mapList, new Comparator<Map.Entry<String, Object>>() {   
   public int compare(Map.Entry<String, Object> o1, Map.Entry<String, Object> o2) {      
       return (o1.getKey()).toString().compareTo(o2.getKey());
   }
});

for (Map.Entry<String, Object> entry : mapList) {
String date=entry.getKey();
Integer score=Integer.parseInt(entry.getValue().toString());
dateList.add(date);
dataList.add(score);
}


result.put("dateList", dateList);
result.put("data", dataList);
logger.info("评分图表数据:"+result);
}
return result;
}


效果:本图仅仅做参考,具体形状根据数据变化而变化








Java数据可视化:柱状图和趋势图绘制全解 本文还有配套的精品资源,点击获取 简介:在IT行业中,数据可视化是理解和解释数据的关键技能。本教程展示了如何使用Java编程语言绘制柱状图和趋势图,这两种图表是数据分析和业务展示中常见的可视化形式,特别是适合展示时间序列数据。我们将通过JFreeChart库实现这些图表,并讨论如何将它们集成到图形用户界面中。同时,将讨论自定义绘图逻辑、添加交互性和性能优化,以帮助业务人员和... 阅读详情

相关推荐

智能财务解决方案PPT:从业务逻辑到文件交付的避坑指南

在数字化转型的浪潮中,企业财务管理者常面临效率提升与风险管控的双重挑战,而智能财务正是借助OCR识别、RPA机器人流程自动化、BI分析预警等技术的深度融合,构建起从单据采集、自动处理到决策支持的业财闭环。无论您是财务负责人还是信息化顾问,理解RPA的适用边界、OCR的兜底机制以及预警闭环的设计,是评估方案能否落地的关键。而在方案输出环节,把业务逻辑转化为一份清晰、专业的PPT同样充满学问——从结构编排、数据可视化到交付前的兼容性检查,任何一个细节都可能影响专业呈现。本文结合智能财务方案设计的底层逻辑与实操经

weixin_33911824的博客 443

Java实现趋势图

-//引入echarts.js 可以echarts官网进行下载,然后放入项目中即可。data: ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]-- 【2】为ECharts准备一个具备大小(宽高)的Dom -->// 图例:在某一位置放置,可配置。可以打开或关闭某一项。// 【3】基于准备好的dom,初始化echarts实例。// 【5】使用刚指定的配置项和数据显示图表。// 【4】指定图表的配置项和数据。data: ['粉丝量']name: '粉丝量',

weixin_68606093的博客 440

JFreeChart 1.0.11:Java图表库的经典之作

本文还有配套的精品资源,点击获取 简介:JFreeChart是一个强大的Java开源图表库,支持创建多种高质量、可定制的图表,如折线图、柱状图等,广泛应用于Java程序和Web应用中。版本1.0.11带来了错误修复和性能提升。开发者可以利用JFreeChart丰富的API自定义图表的每个细节,实现数据可视化。此外,它支持多种数据源、交互性功能、多种导出格式和打印选项,与Sw...

weixin_35238815的博客 1118

java 走势图_Java实现的二维坐标趋势图(血压变化趋势图) | 学步园

一、程序说明1、自定义血压变化趋势图classMyCanvas 继承 Canvas类,重写其中的public void paint(Graphics g)方法,里边绘制详细的界面组件外观。2、主类TrendChart 继承 JFrame,设定布局,添加文本框和输入框,实例化类产生对象trendChartCanvas,并将rendChartCanvas添加到中央区。3、程序中的难点:绘制动态高压、...

weixin_31689651的博客 774

Echarts+ajax+java+mysql实现饼图+折线图+柱状图-Java代码类资源

对Echarts3.0的基本图表实现,即饼图,折线图,柱状图。 从数据库读取数据显示在前台,图表可根据数据库数据实时更新。

java实现Echarts折线图历史数据显示(一)

JDBC实现MySQL中的数据上传到前端,经Echarts折线图展示出来。

使用Java代码的方式实现简易的走势图(1)

这是我第二篇优快云文章了,写这篇文章的时候,心态已经发生了些变化。因为最近看了一个朋友介绍的一本书《奇特的一生》。在很多人看来,书中的主人翁柳比歇夫生活、工作的方法饱受争议。但是,在我看来,如果一个普通人,想要在一生之中有点成就,想要给这个世界留点什么有价值的东西,柳比歇夫的方法或许可以起到很大的作用。当我尝试去按照他的方法去做的时候,我的内心变得很纯净,丝毫不受外界各种琐碎之事的影响。另外看过一

u014655010的博客 4701

Java生成曲线图

Java 曲线图 jfreechart。 含jar包,直接运行,注释全。

java 生成趋势图_Java 创建PowerPoint图表并为其添加趋势线

图表,是指将既得数据用图形的方式表示出来。在前文中我们介绍过如何使用Java程序来为Excel文档创建图表的方法。本文将通过使用Java程序来演示如何创建PowerPoint图表及为图表添加趋势线。趋势线的运用能够显示数据的变化趋势,同时能够帮助预测数据的未来值。Jar文件获取及导入:方法1:通过官网下载获取jar包。解压后将lib文件夹下的Spire.Presentation.jar文件导入Ja...

weixin_29248313的博客 665

Java JFreeChart 后台生成折线图

Java语言纯后台生成折线图,饼图,柱状图。

java导出excel并生成折线图.java

资源描述:一个使用java做的导出数据,并且可以在excel表生成折线图的工具类,使用简单操作方便。

Java实现的二维坐标趋势图(血压变化趋势图)

本实例出自项目一处,希望能和大家一起分享交流。版权所有,转载请注明出处,尊重知识,敬畏劳动。 一、程序说明 1、自定义血压变化趋势图class MyCanvas 继承 Canvas类,重写其中的public void paint(Graphics g)方法,里边绘制详细的界面组件外观。 2、主类TrendChart 继承 JFrame,设定布局,添加文本框和输入框,实例化类产生对

Freedoman的专栏 8214

【代码审计】RuoYi定时任务漏洞:从SQL注入到RCE的攻防演变

本文深入剖析了RuoYi框架定时任务模块从早期版本无校验到引入黑白名单机制,再到被组合利用实现RCE的完整漏洞演变过程。文章详细分析了SQL注入与定时任务功能结合导致的远程代码执行漏洞,并总结了代码审计与安全开发的核心要点,为开发者提供了重要的安全参考。

yellow的专栏 699

java 生成趋势图_JFreeChart折线图的生成方法

JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产...

weixin_29688535的博客 1397

华为云Stack交付实战:从工勘到上线的全流程拆解

本文详细拆解华为云Stack交付全流程,从项目启动、工勘、LLD设计到硬件部署和软件安装,提供实战技巧与避坑指南。重点解析华为云Stack交付流程中的关键环节,如标准化工具使用、规范化文档管理和流程化协作,帮助团队高效完成从工勘到上线的复杂项目交付。

weixin_29243063的博客 156

初级文章【西门子】字符拼接成字符串

针对S7-400极其以下PLC,1200往上据说有专门的块了呢,首先,我是不用库的,需要什么函数会自己写,OK进入正题。 首先,我们有一个DB块,里面有14个char,一个14位的char数组和一个14位的string。如下图。 我们的目的是将char1-char10拼接成一个string。 第一种方式:第一步,将char放进数组。 ​​​​​​​ 相信大家都能看明白,但是我还是要解释解释 L取值2 T赋值到临时变量DBNO(INT) OPN DB [#DBNO]获取DB块,这一句.

NS_Speak(IVAV) 1万+

java 画趋势图,java画曲线图

java动态曲线图,2016年 7 个最佳的 java 框架,java画曲线图,java做统计曲线图java 动态曲线图,2016年 7 个最佳的 java 框架,java做统计曲线图,java画曲线图()); 柱状图 DEMO: package com.cons.jfreechart; import java.awt.Color; import java.io.File; import java...

weixin_35698738的博客 2486

CentOS7 编译升级GCC至9.3.0

1)下载GCC9.2.0源码并解压 从GCC官方FTP下载地址可以看到GCC最新版本为9.3.0。由于官网下载速度慢,实际上用清华大学的镜像站进行下载,代码如下: wget -c /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz #考虑到安装失败的可能性,创建一个临时文件夹来安装GCC...

haha123486的博客 1万+

Android实现天气预报温度/气温折线趋势图

 Android实现天气预报温度/气温折线趋势图 天气预报的APP应用中,难免会遇到绘制天气温度/气温,等关于数据趋势的折线或者曲线图,这类关于气温/温度的折线图,一般会有两条线,一条是高温线,一条是低温线。 我之前介绍了一个Android平台上第三方开源框架的统计图表库MPAndroidChart(文章链接地址:http://blog.youkuaiyun.com/zhangphil/articl

Zhang Phil 1万+

k8s infiniband 和 RoCE(RDMA over Converged Ethernet)

vendors 为设备厂商编号,注意这里不是 ibv_devinfo 命令看到的vendor_id 的值,而是 lspci -n |grep “网卡的bdf” 得到的。如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod roce 设备 ip 为 10.56.217.79)如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod ip 为 10.96.225.24)说明:文中用到的镜像是自定义的,文末有其Dockerfile 文件。修改该文件,增加污点容忍的内容,如下。

weixin_40548182的博客 1794

基于龙虾Claw的会议纪要自动提取与重点内容总结办公场景实践

本文介绍如何使用龙虾Claw构建会议纪要自动提取与重点内容总结系统,实现会议内容的智能处理。

一键难忘的博客 253

《疫情数据抓取和分析》训练营day03_疫情数据图表展示

疫情数据图表展示 疫情数据展示:我们将会使用到第三方组件快速构建以下视图,Java的优势在于无穷无尽的开源库等你来用。 分析界面: 1、全国疫情数据汇总功能实现 获取数据 2、全国省份疫情数据比例功能实现 3、全国疫情累计趋势图功能实现 折线图 4、世界其他国家疫情数据汇总功能实现 5、世界其他国家疫情数据比例功能实现 饼图 示例代码: package com.coding.demo; imp...

qfzhangxu的博客 386

2025华为OD机试真题最新题库 (B+C+D+E+2025A+2025B卷) + 在线OJ在线刷题使用(C++、Java、Python C语言 JS合集)(正在更新2025B卷,目前已收录710道)

2024年,华为目前已经启用D卷,目前D卷和C卷的题目一样一次订阅永久阅读,支持在线刷题,持续更新,有问题随时解答,本专栏题目数量已收录到484道。每篇文章的思路分析都非常详细,题目新增图解思路,问题解疑,多样例测试,超过百字的思路参考解析。

KJ.JK 11万+

Android 自定义统计趋势图

自定义view统计趋势图效果 公司需求要做一个记步的统计图表,在网上找了很多例子没有发现这样的效果,用了MPchart 功能强大,可我不是很会用效果不理想,所有就有了这个博客, 这是最终实现效果, 废话不多说直接上代码,,这是自定义view package com.ormdb.ondraw; import android.content.Conte

Bin的博客 1368

19、英国模式:银行体系的演变与现代金融架构

本文深入探讨了英国银行体系从专业化向全能银行的演变过程,分析了自律监管模式的优劣,并解析了围栏制度对金融稳定的影响。同时,文章还介绍了信用合作社、建筑协会和投资银行的角色与转型,全面展示了英国金融体系的多样性与复杂性,以及其在全球金融市场中的重要作用。

embedding5hiker的博客 104

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java图表标题_Java 创建Excel图表

import com.spire.xls.*;import com.spire.xls.charts.ChartSerie;import com.spire.xls.charts.ChartSeries;import java.awt.*;public class LineChart {public static void main(String[] args) {//创建Workbook对象Wo...

weixin_39601056的博客 101

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: ECharts制作报表模板--.NET
下一篇: 消息队列的使用
LazyTojava
博客等级 码龄10年 1粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值