# dhm-echarts
**Repository Path**: shieldzhang/dhm-echarts
## Basic Information
- **Project Name**: dhm-echarts
- **Description**: echarts3图表封装,前台ajax通过自定义div属性实现传值,后台通过各种数据适配器自动组装达到图表封装,以实现echarts图表展示,也可以自定义适配器。以及分析预测echarts图表拟合曲线算法。
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 102
- **Created**: 2017-11-08
- **Last Updated**: 2021-11-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#
dhm-echarts
echarts3图表封装,前台ajax通过自定义div属性实现传值,后台通过各种数据适配器自动组装达到图表封装,以实现echarts图表展示,也可以自定义适配器。以及分析预测echarts图表拟合曲线算法。
项目地址:https://git.oschina.net/duhongming/dhm-echarts
项目交流QQ群:551709145 验证码:码云
# 目录
[1 Maven项目说明](#1-maven项目说明-1)
----
+ [1.1 web项目部署(echarts min 部署)](#11-web项目部署echarts-min-部署)
+ [1.2 web项目部署(echarts all 部署)](#12-web项目部署echarts-all-部署)
+ [1.3 web项目部署(3D 图表 部署)](#13-web项目部署3d-图表-部署)
+ [1.4 Maven的POM引用](#14-maven的pom引用)
[2 dhm-echarts-web项目](#2-dhm-echarts-web项目-1)
----
+ [2.1 页面图表div设置说明)](#21-页面图表div设置说明)
+ [2.2 Controller控制器中EchartsCore](#22-controller控制器中echartscore)
+ [2.3 页面ajax获取表单中的数据](#23-页面ajax获取表单中的数据)
+ [2.4 给图表添加点击事件](#24-给图表添加点击事件)
+ [2.5 整体图表Echarts背景水印](#25整体图表echarts背景水印)
[3 dhm-echarts-core项目](#3-dhm-echarts-core项目-1)
----
+ [3.1 echartsCore中调用的适配器](#31-echartscore中调用的适配器)
+ [3.2 adapterLineAndBar、adapterReverseBar适配器数据类型](#32-adapterlineandbaradapterreversebar适配器数据类型)
+ [3.3 adapterPie适配器数据类型](#33-adapterpie适配器数据类型)
+ [3.4 adapterDoubleNumLine适配器数据类型](#34-adapterdoublenumline适配器数据类型)
+ [3.5 adapterRadar适配器数据类型](#35-adapterradar适配器数据类型)
+ [3.6 adapterMap适配器数据类型](#36-adaptermap适配器数据类型)
+ [3.7 散点图适配器数据类型](#37-散点图适配器数据类型)
+ [3.8 日历图适配器数据类型](#38-日历图适配器数据类型)
+ [3.9 多维数据适配器数据类型](#39-多维数据适配器数据类型)
[4 dhm-echarts-calculate项目](#4-dhm-echarts-calculate项目-1)
----
[5 dhm-echarts-bean项目](#5-dhm-echarts-bean项目-1)
----
[6 highcharts3D项目](#6-highcharts3d项目-1)
----
[附录](#附录-1)
----
+ [附Echarts项目](#附echarts项目)
+ [附Highcharts插件](#附Highcharts插件)
+ [附Vis插件](#附Vis插件)
+ [附Socket插件](#附Socket插件)
+ [附UI页面](#附UI页面)
## 1 Maven项目说明
+ dhm-echarts-bean:echarts图表的所有Option对象的JavaBean封装,以及针对highcharts的3D柱状图和3D饼状图的JavaBean封装
+ dhm-echarts-calculate:echarts图表拟合曲线算法:多项式回归方程(通过散点拟合最优方程)、余弦相似度(曲线相似度)等算法
+ dhm-echarts-core:echarts图表基本图表配置、数据适配器、图表配置、点击事件数据结构封装
+ dhm-echarts-web:图表演示页面 http://localhost:8080/dhm-echarts-web/echarts/demo
新版测试地址:http://localhost:8080/dhm-echarts-web/
+ dhm-echarts-springboot:图表演示页面和(dhm-echarts-web)两种展示风格
+ dhm-echarts架构图:

### 1.1 web项目部署(echarts min 部署)
```
```
### 1.2 web项目部署(echarts all 部署)
```
```
### 1.3 web项目部署(3D 图表 部署)
```
```
## 1.4 Maven的POM引用
```xml
com.duhongming
dhm-echarts-core
3.0.0.2
com.duhongming
dhm-echarts-calculate
3.0.0.2
org.springframework
spring-websocket
${spring.version}
org.springframework
spring-messaging
${spring.version}
com.fasterxml.jackson.core
jackson-core
2.4.4
com.fasterxml.jackson.core
jackson-databind
2.4.4
com.fasterxml.jackson.core
jackson-annotations
2.4.4
```
## 2 dhm-echarts-web项目
### 2.1 页面图表div设置说明
```
```
div属性 | 默认值 | 说明
---|--- |---
Html属性:id | 无 | id必须唯一
Html属性:class| echarts |必须是echarts
Echarts基础属性: echarts-type | line | line:折线图
bar:柱状图
pie:饼状图
rose:玫瑰图
funnel:漏斗图
radar:雷达图
scatter:散点图
gauge:仪表盘
liquidfill:注水图
map:地图
calendar:日历图
pie3d:3D饼状图
bar3d:3D柱状图
multidata-scatter:多维数据散点图
multidata-heatmap:多维数据热力图
Echarts基础属性: echarts-title| 图表标题 |图表标题
Echarts基础属性: echarts-link| 无 |图表标题链接
Echarts基础属性: echarts-subtitle |图表副标题 |图表副标题
Echarts基础属性: echarts-sublink| 无 |图表副标题链接
Echarts基础属性: echarts-theme |无 |macarons/dark/infographic/roma/shine/vintage
Echarts组件:echarts-toolbox |false |是否需要工具栏
Echarts组件:echarts-datazoom| false |是否需要数据域
Echarts组件:echarts-stack| false |是否需要柱状堆积图
Echarts组件:echarts-markpoint| false| 是否需要标记点
Echarts组件:echarts-markline| false| 是否需要标记线
Echarts坐标轴:echarts-x-axis-name |无 |X轴单位,eg: 日期(星期)
Echarts坐标轴:echarts-split-number| 5 |坐标轴的分割段数
Echarts坐标轴:echarts-min-interval| 0.0 |坐标轴最小间隔大小
Echarts坐标轴:echarts-y-axis-name |无 |Y轴单位(两个Y轴单位,中间用逗号分隔)
eg: 最高温度(°C),最低温度(°C)
Echarts跳转:echarts-url |无 |后台SpringMVC控制器,通过@RequestBody获取数据
Echarts跳转:echarts-socket|为空或没有则不是动态图表|后台是Spring Socket控制器,通过TextMessage传递数据
Echarts跳转:echarts-onclick-id|图表点击事件|关联a标签id
其他:echarts-regression|散点图必要参数,否则不必要|只有echarts-type=scatter echarts-regression才有意义。
linear:线性回归拟合
exponential:指数回归拟合
logarithmic:对数回归拟合
olynomial:多项式回归拟合
其他:echarts-measure-range |量程 |只有echarts-type=gauge才有意义
其他:echarts-axis-label-show |是否显示刻度 |只有echarts-type=gauge才有意义
### 2.2 Controller控制器中EchartsCore
1)创建EchartsCore对象,加载前台页面的属性参数,通过getBaseGsonOption获取gsonOption图表的基本配置都已经setter完成
```
/**
* 折线图
* @param echartsConfig
* @return
*/
@RequestMapping(value="line")
public @ResponseBody String line(@RequestBody EchartsConfig echartsConfig){
System.out.println("测试传入参数:"+echartsConfig.getParameters());
return EchartsCore.getInstance().adapterLineAndBar(echartsConfig,dataService.getWeatherData()).toString();
}
```
2)gsonOption可以进行自定义配置
```
//自定义配置
gsonOption.title().x(X.center);
gsonOption.legend().left(X.left).orient(Orient.vertical);
```
3)通过adapterLineAndBar将数据setter进gsonOption,然后return gsonOption.toString()通过@ResponseBody返回到页面ajax中
4)gsonOption可以不使用适配器,gsonOption中的series对象完成图表的显示
### 2.3 页面ajax获取表单中的数据
1)有一个包裹form的标签,传递的button按钮即可
```html
```
2)刷新指定图表
```js
$("#submitButton").click(function(){
$("#demo-line").dblclick();
});
#注意:dblclick()要替换成contextmenu(),因为我能通过js控制鼠标不能右击,而通过js控制图表右击点击事件,只有这一个通道供echarts使用。
```
3)后台获取该图表的数据,已经保存在echartsConfig中
```java
System.out.println("测试传入参数:"+echartsConfig.getParameters());
```
### 2.4 给图表添加点击事件
1)准备一个a html标签
```xml
```
2)通过在div属性echarts-onclick-id关联a标签
```xml
```
3)当target=\"\_jbox\"会弹出对话框
```xml
对话框宽度:jbox-width="1200"
对话框高度:jobx-height="400"
对话框标题:jbox-title="跳转dialog对话框-{seriesName}-{name}",其中{seriesName}是点击图表所在的legend名称,{name}是点击图表所在的x轴的名称。
```
4) 后台取值
```java
/**
* 获取参数到前台显示
* 也可以通过制定控制器去请求其他图表的URL
* @param echartsOnClick
* @return
*/
@RequestMapping(value="onclick")
public String onclick(EchartsOnClick echartsOnClick,ModelMap modelMap){
modelMap.put("echartsOnClick",echartsOnClick);
return "onclick";
}
```
### 2.5 整体图表Echarts背景水印
修改echarts.ajax.js中的var waterMarkText = 'Echarts' 即可,为空则没有背景水印。
## 3 dhm-echarts-core项目
### 3.1 echartsCore中调用的适配器
所模拟的数据都可以通过Mybatis、Hibernate、Spring JDBC、Spring JPA
生成多行的二维表格式:
List