图表库 - Highchart / Echart
当前主要使用HighChart和Echart图表库,都基于Jquery,需要先引用Jquery。
实际问题:引入Jquery需在图表库前,否则报错。
HighChart官网:https://www.hcharts.cn/demo/highcharts
Echart官网:http://echarts.baidu.com/
1、特点分析
HighChart:
兼容性 - 支持所有主流浏览器和移动平台(android、iOS等)。
多设备 - 支持多种设备,如手持设备 iPhone/iPad、平板等。
免费使用 - 开源免费。
轻量 - highcharts.js 内核库大小只有 35KB 左右。
配置简单 - 使用 json 格式配置
动态 - 可以在图表生成后修改。
多维 - 支持多维图表
配置提示工具 - 鼠标移动到图表的某一点上有提示信息。
时间轴 - 可以精确到毫秒。
导出 - 表格可导出为 PDF/ PNG/ JPG / SVG 格式
输出 - 网页输出图表。
可变焦 - 选中图表部分放大,近距离观察图表;
外部数据 - 从服务器载入动态数据。
文字旋转 - 支持在任意方向的标签旋转。
Echart:
一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),
底层依赖轻量级的 Canvas 类库 ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表。
ECharts 3 中更是加入了更多丰富的交互功能以及更多的可视化效果,并且对移动端做了深度的优化。
对比:
A.HighChart配置显示更加灵活,支持html属性,Echart可定制性差,不支持HTML
实际问题:HighChart可利用html属性实现太长省略号问题,Echart可用formatter方法判断标签长于N个字符,截断并加上省略号.
B.Echart 动态效果优于HighChart,HighChart兼容性由于Echart
C.Highchart基于svg,可进行后续对dom进行操作,Echart基于canvas,实现大数据展示效果好
D.echarts.js支持按需求打包:echarts.js官网提供了在线构建的工具,可以在线构建项目时,选择项目所需要使用到的模块,从而达到减小JS文件的体积
2、使用方法:
HighChart:
跟ECharts一样,HighCharts也需要下载相应的插件,不过HightCharts的插件很简单,只有一个highcharts.js文件
如果需要导出图表,则需要exporting.js文件
如果需要一些特殊的图形呈现,则还需要下载highcharts-more.js
Echart:http://www.cnblogs.com/ninilovebobo/articles/3932805.html
实际问题:echarts.js的体积较大,建议使用echart.min.js,但部分效果不兼容
3、常见图表元素(以Echart为例,Highchart属性类似)
3.1、标题(title)
常见属性:主标题文本(text),文本样式(textStyle)
3.2、提示语(tooltip)
常见属性:格式化文本(formatter),文本样式(textStyle)
3.3、横坐标(xAxis)、纵坐标(yAxis)
常见属性:坐标轴的分割数(splitNumber),最大(max),最小(min),坐标轴线的相关设置(axisLine),坐标间隔(interval),旋转角度(rotate)
实际问题:
1、图表库的横纵坐标数据为自动计算,若自动计算结果显得太拥挤,可用splitNumber属性定义建议分割数,
但这个分割段数只是个预估值,最后实际显示的段数会在这个基础上根据分割后坐标轴刻度显示的易读程度作调整
2、横坐标数据太多,显示错位或换行,有两种方案处理:将刻度标签旋转较度;或增大坐标轴刻度标签的显示间隔
3、若非必要,不要随意设置max,否则容易造成图表超出y轴刻度线的问题,可利用min属性去掉负坐标;
3.4、图例(legend)
常见属性:是否显示(show),朝向(orient),边框颜色(borderColor),边框宽度(borderWidth),格式化文本(formatter)
实际问题:图例默认边框自带圆弧,若要去除,borderRadius无效,borderRadius指的是这个图例的外边框
设置单个图例的边框属性:
legend: {
data: [{
icon:‘rect’,
}]
}
3.5、数据(series:)
可对单一条数据进行设置。
实际问题:可用来设置当数据为空时,不显示0
label: {
normal: {
show: true,
formatter: function (value) {
if (value.value == 0) {
return "";
} else {
return value.value;
}
}
}
}
3.6、直角坐标轴(grid)
常见属性:上(top)下(bottom)左(left)右(right)间距,高度(height),宽度(width)
实际问题:一般图表宽度在外层div中设置,较少使用grid中的height,width;
若使用js计算图表高度、宽度,需在绘制图表前,确定div的大小

3.7色系(color)
color:['#fbb748', '#52e452', '#4493d5', '#abd74a', '#73c1e6', '#ff86ff', '#8686ff', '#e06c50', '#f2e73d', '#c3cf49', '#afc3f1']
按顺序取色值,若所设置的颜色数量不够,则循环使用
4、模拟鼠标划过事件(Highchart)
onMouseOver() // 模拟鼠标划过事件,配合 setInterval 可以实现轮选点
图表库 - Highchart / Echart的更多相关文章
- js组件在线编辑器插件、图表库插件、文件树插件
在线编辑器插件: 一.kindeditor 二.UEditor 图表库插件: 一.echart 二.highchart 文件树插件: 一.zTree -- jQuery 树插件 http://www. ...
- 基于canvas实现的高性能、跨平台的股票图表库--clchart
什么是 ClChart? ClChart是一个基于canvas创建的简单.高性能和跨平台的股票数据可视化开源项目.支持PC.webApp以及React Native和Weex等平台.在React Na ...
- iOS图表库Charts集成与使用
Charts是一个很优秀的图表库,它支持Android.iOS.tvOS和macOS,这样使用起来,可以节省学习成本,可以从GitHub上了解更多信息.本文记录在iOS项目上的集成与使用. Chart ...
- ECharts(Enterprise Charts 商业产品图表库)初识
一.简介 大数据时代,重新定义图表的时候到了,所以随之ECharts就随之出现了. ECharts(Enterprise Charts 商业产品图表库) 是基于Canvas的,纯Javascript ...
- ECharts-基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表
ECharts http://ecomfe.github.com/echarts 基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算 ...
- 功能齐全的图表库 ACharts
ACharts是基于Raphael 库开发的,而Raphael.js是基于svg和vml语言,因此最低可以兼容到IE6+,而最高则所有支持w3c svg标准的现代浏览器都可以使用,svg甚至在手机平台 ...
- 11个很棒的 jQuery 图表库
如果你曾经使用过任何类型的数据,你应该知道阅读一排排数据的痛苦.通过所有这些数据弄清楚他们的意思是非常不容易的.可视化对于解决这个问题起到了重要的作用.可视化降低了数据阅读的难度,帮助决策者获得可操作 ...
- 最牛逼android上的图表库MpChart(三) 条形图
最牛逼android上的图表库MpChart三 条形图 BarChart条形图介绍 BarChart条形图实例 BarChart效果 最牛逼android上的图表库MpChart(三) 条形图 最近工 ...
- 最牛逼android上的图表库MpChart(二) 折线图
最牛逼android上的图表库MpChart二 折线图 MpChart折线图介绍 MpChart折线图实例 MpChart效果 最牛逼android上的图表库MpChart(二) 折线图 最近工作中, ...
随机推荐
- 函数(day08)
C语言里可以采用分组的方式管理语句 每个语句分组叫做一个函数 多函数程序执行的时候时间分配情况必须 遵守以下规则 .整个程序的执行时间被划分成几段,每段 时间都被分配给一个函数使用 .不同时间段不能互 ...
- [51Nod1486] 大大走格子 (dp+容斥)
传送门 Description 有一个h行w列的棋盘,里面有一些格子是不能走的,现在要求从左上角走到右下角的方案数. Input 单组测试数据. 第一行有三个整数h, w, n(1 ≤ h, w ≤ ...
- Jquery-自定义表单验证
jQuery自定义表单验证
- 去除html标签 php
function my_html($string,$sublen =80){ $string = strip_tags($string); $string = preg_replace ('/\n/i ...
- Java反射获取class对象的三种方式,反射创建对象的两种方式
Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...
- 百度之星2014资格赛 1003 - Xor Sum
先上代码: Xor Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)T ...
- atomikos实现多数据源支持分布式事务管理(spring、tomcat、JTA)
原文链接:http://iteye.blog.163.com/blog/static/1863080962012102945116222/ Atomikos TransactionsEssenti ...
- 手动重启weblogic脚本
手动重启weblogic脚本 pid=`ps -ef|grep fzjc_Admin_Server|grep -v grep|awk '{print $2}'` echo $pid kill -9 $ ...
- Linux中的默认权限与隐藏权限(文件、文件夹)
一个文件(或文件夹)拥有若干个属性.包含(r/w/x)等基本属性,以及是否为文件夹(d)与文件(-)或连接文件(l)等属性.此外,Linux还能够设置其它系统安全属性.使用chattr来设置.以lsa ...
- c26---文件包含include
// // main.c // 文件包含 #include <stdio.h> // 函数可以重复声明, 但不能重复定义 void test(); void test(); void te ...