关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » JavaScript »Java版ECharts图表库ECharts-Java

    Java版ECharts图表库ECharts-Java

    2014-10-17 00:00:00 出处:ITJS
    分享

    ECharts-Java项目简介

    ECharts是一款功能非常强大的JavaScript图表库,ECharts-Java是ECharts的Java版,用Java代码实现了ECharts的所有图表功能,ECharts中的Json结构也都转换成了Java对象,这样使用者们使用起来会非常方便,设置也相当灵活。

    本项目是一个供Java开发使用的ECharts的开发包,主要目的是方便在Java中构造ECharts中可能用到的全部数据结构,如完整的结构 Option。Option中的数据Series,包含Bar-柱状图,Line-折线图,Pie-饼图,Chord-和弦图等,支持ECharts中的 所有图表。支持所有的Style类,如AreaStyle,ChordStyle,ItemStyle,LineStyle,LinkStyle等等。支 持多种Data数据类型,一个通用的Data数据,以及PieData,MapData,ScatterData,KData等针对性的数据结构。

    你可以使用本项目直接构造一个Option对象,转换为JSON后直接用js设置myChart.setOption(option),或者你也可以在前段构造基本的Option对象,然后使用本项目来构造其中需要的任意某部分的数据,如使用Series支持的图表类型创建Series数据。

    项目支持

    图表类型

    Line – 折线(面积)图 Bar – 柱状(条形)图 Scatter – 散点(气泡)图 K – K线图 Pie – 饼(圆环)图 Radar – 雷达(面积)图 Chord – 和弦图 Force – 力导向布局图 Map – 地图 Gauge – 仪表盘 Funnel – 漏斗图 Island – 孤岛图(官方未提供,这里只有数据Island对象)

    ECharts组件

    Axis – 坐标轴 Grid – 网格 Title – 标题 Tooltip – 提示 Legend – 图例 DataZoom – 数据区域缩放 DataRange – 值域漫游 Toolbox – 工具箱 Timeline – 时间线

    Option说明

    Option正式代码中使用,不需要任何依赖。 GsonOption正式代码中可以使用,需要引入Gson包,使用toString()方法可以转换为JSON结构的数据(支持function,详情看下面的function说明)。 EnhancedOption测试专用,主要方便在浏览器中直接查看效果。

    function说明

    由于JSON标准中不包含function类型,因而大多数的JSON库都不直接支持这种类型,处理这种类型最简单的方式就是转换为JSON字符串时,对字符串进行处理。

    虽然像Jackson json和fastjson通过注解或者自定义的实现序列化接口可以实现,毕竟和JSON库的结合太密切了,而且使用起来也很麻烦,不如直接处理字符串,或者在js中处理。

    本项目中提供了GSON实现的GsonOption,就是重写了toString()方法,改为输出JSON结构的字符串,并且支持以下两种function形式:

    {
    formatter:function(value){
    return value.substring(0,8);
    }}//和{
    formatter:(function(){
    return ‘Temperature : <br/>{b}km : {c}°C’;
    })()}

    当然这种形式在Java中书写的时候有着严格的要求:

    option.tooltip().trigger(Trigger.axis).formatter(“function(value){return value.substring(0,8);}”);option.tooltip().trigger(Trigger.axis).formatter(“(function(){return ‘Temperature : <br/>{b}km : {c}°C’;})()”);

    先看第一种,这里的"function中,双引号和function必须连着,中间不能存在空格,否则不会识别。然后是结尾的}",这里也必须连着不能有空格,在首尾这两段代码之间不能出现}",否则会判断出错。如果在{}中的代码有字符串,请使用单引号',双引号出现在单引号内时使用"即可。除此之外没有别的限制。 再看第二种,这里的"(function中,双引号、括号和function必须连着,中间不能存在空格,否则不会识别。然后是结尾的})()",这里也必须连着不能有空格,在首尾这两段代码之间不能出现})()",否则会判断出错。如果在{}中的代码有字符串,请使用单引号',双引号出现在单引号内时使用"即可。除此之外没有别的限制。

    上述对function的处理很简单,不限制在formatter使用,所有值都能这么写,你可以参考写出自己的Option

    ECharts-Java的简单使用

    @Testpublic void test() {
    //地址:http://echarts.baidu.com/doc/example/line5.html
    EnhancedOption option = new EnhancedOption();
    option.legend(“高度(km)与气温(°C)变化关系”);

    option.toolbox().show(true).feature(Tool.mark, Tool.dataview, new MagicType(Magic.line, Magic.bar), Tool.restore, Tool.saveAsImage);

    option.calculable(true);
    option.tooltip().trigger(Trigger.axis).formatter(“Temperature : <br/>{b}km : {c}°C”);

    ValueAxis valueAxis = new ValueAxis();
    valueAxis.axisLabel().formatter(“{value} °C”);
    option.xAxis(valueAxis);

    CategoryAxis categoryAxis = new CategoryAxis();
    categoryAxis.axisLine().onZero(false);
    categoryAxis.axisLabel().formatter(“{value} km”);
    categoryAxis.boundaryGap(false);
    categoryAxis.data(0, 10, 20, 30, 40, 50, 60, 70, 80);
    option.yAxis(categoryAxis);

    Line line = new Line();
    line.smooth(true).name(“高度(km)与气温(°C)变化关系”).data(15, -50, -56.5, -46.5, -22.1, -2.5, -27.7, -55.7, -76.5).itemStyle().normal().lineStyle().shadowColor(“rgba(0,0,0,0.4)”);
    option.series(line);
    option.exportToHtml(“line5.html”);
    option.view();}

    代码生成的json结果:

    {
        "calculable": true,
        "toolbox": {
            "show": true,
            "feature": {
                "restore": {
                    "show": true,
                    "title": "还原"
                },
                "magicType": {
                    "show": true,
                    "title": {
                        "line": "折线图切换",
                        "stack": "堆积",
                        "bar": "柱形图切换",
                        "tiled": "平铺"
                    },
                    "type": ["line", "bar"]
                },
                "dataView": {
                    "show": true,
                    "title": "数据视图",
                    "readOnly": false,
                    "lang": ["Data View", "close", "refresh"]
                },
                "mark": {
                    "show": true,
                    "title": {
                        "mark": "辅助线开关",
                        "markClear": "清空辅助线",
                        "markUndo": "删除辅助线"
                    },
                    "lineStyle": {
                        "color": "#1e90ff",
                        "type": "dashed",
                        "width": 2
                    }
                },
                "saveAsImage": {
                    "show": true,
                    "title": "保存为图片",
                    "type": "png",
                    "lang": ["点击保存"]
                }
            }
        },
        "tooltip": {
            "trigger": "axis",
            "formatter": "Temperature : u003cbr/u003e{b}km : {c}°C"
        },
        "legend": {
            "data": ["高度(km)与气温(°C)变化关系"]
        },
        "xAxis": [{
            "type": "value",
            "axisLabel": {
                "formatter": "{value} °C"
            }
        }],
        "yAxis": [{
            "type": "category",
            "boundaryGap": false,
            "axisLine": {
                "onZero": false
            },
            "axisLabel": {
                "formatter": "{value} km"
            },
            "data": [
                0, 10, 20, 30, 40, 50, 60, 70, 80
            ]
        }],
        "series": [{
            "smooth": true,
            "name": "高度(km)与气温(°C)变化关系",
            "type": "line",
            "itemStyle": {
                "normal": {
                    "lineStyle": {
                        "shadowColor": "rgba(0,0,0,0.4)"
                    }
                },
                "emphasis": {}
            },
            "data": [
                15, -50, -56.5, -46.5, -22.1, -2.5, -27.7, -55.7, -76.5
            ]
        }]}
    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    技术热点

    微软已修复windows 7/windows 8.1媒体中心严重漏洞 用户可下载安

    卸载MySQL数据库,用rpm如何实现

    windows 7中使用网上银行或支付宝支付时总是打不开支付页面

    一致性哈希算法原理设计

    MySQL数字类型中的三种常用种类

    如何解决SQL Server中传入select语句in范围参数

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。