图表库 - 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(二) 折线图 最近工作中, ...
随机推荐
- Codeforces 851B/C
B. Arpa and an exam about geometry 传送门:http://codeforces.com/contest/851/problem/B 本题是一个平面几何问题. 平面上有 ...
- ELK之Logstash配置文件详解
Logstash 是一个开源的数据收集引擎,它具有备实时数据传输能力.它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地.它以插件的形式来组织功能,通过配置文件来描述需要插件做什么, ...
- 一种脱离VC编程软件的方法学习C/C++编程(搭建EditPlus实现在文本编辑框中执行.c文件
网上下载一个EditPlus记事本安装好后就可以按照下面步骤进行搭建环境了: 一.工具(Tools)→配置用户工具(Configure UserTools...),[添加工具](Add Tool> ...
- PHP5.5下安装配置EcShop
建议用较旧的PHP版本与EcShop搭配,比如PHP5.3,新版的PHP有很多奇奇怪怪的问题... 错误描述: Deprecated: preg_replace(): The /e modifier ...
- boost中的有用工具assign和uuid
assign assign重载'+'=和','实现连续赋值 assign不仅支持所有8个STL标准容器(vector.string.deque.list.set.multiset.map.multim ...
- angularjs时间轴
1.炫酷的图片是开端啊 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- 进行mysql压力測试须要注意的几点
1.填充測试数据比物理内存还要大,至少超过innodb_buffer_pool_size 值,不能将数据所有装载到内存中,除非你的本意就想測试全内存状态下的MySQL性能. 2.每轮測试完毕后,都重新 ...
- sizeof运算符、malloc函数及free函数
一.sizeof运算符的用法 1.sizeof运算符给出某个类型或变量在内存中所占据的字节数. int a; sizeof(a)=4; //sizeof(int)=4; double b; si ...
- luogu3807 【模板】 卢卡斯定理
题目大意 对于一个很大的$n,m,p$如何求$C_{n+m}^m\mod p$? Lucas定理 若$n_i,m_i$分别是$n,m$在$p$进制下第$i$位的数字,则有 $$C_n^m\mod p= ...
- <% %> in html
$(document).on('click', '.invoiceNumber', function () { var string = <%= StaticHelper.GetCurrentC ...