一直在用
highchart
在做图表,最近一段时间突然接到一活,需要用highstock
帮客户完成一个股票K线图和分时图。虽然用法和api
上与highchart
没什么区别,但还是研究一番做出了对应的DEMO,于是抽空与大家分享下。
highchart 自定义事件插件
highchart 插件之自定义事件
下面是扩展插件的代码
1 | (function (HC) { |
highchart legend 可拖拽扩展
highchart 插件之legend 拖拽扩展
下面是扩展插件的代码
1 | (function (H) { |
前端初始化代码
1 | $(function () { |
效果图
Highcharts部分图表圆角显示
highchart 插件之给column和bar 圆角
下面是扩展插件的代码
1 | (function (H) { |
前端初始化代码
1 | $(function () { |
效果图
highchart 点击图表弹出层展示新图表
highchart+table 结合phantomjs 一并生成图片
其实是看到群里有小伙伴有这个需求,我才制作了这个DEMO,因为之前用phantomjs实现过纯后台导出图片,所以顺便改了下以前的DEMO分享给大家。
phantomjs 纯后台导出 请参考:http://www.peng8.net/2014/07/21/render-charts-serverside/
准备工作
- 去官网下载最新的phantomjs,官网提供三个版本下载,我电脑是window 7,所以用的是windows版,至于其他系统的请下载对应的版本。
- 解压文件,只需要对应的处理文件,例如windows版本里的就要
phantomjs.exe
和rasterize.js
,rasterize.js 用来向 phantomjs 发起请求生成快照
前端整理
- 这里我们需要2个页面,一个页面用来专门显示图表(default),一个用来触发弹出图表(index)
为什么我们需要2个页面呢?因为这里我们是用到了phantomjs的一个功能,生成快照!所以需要一个干净的页面,只有图表,图片生成的内容也就是我们想要生成最后样子的图片。 - 我借用了
lhgdialog
弹窗插件来弹出展现我们要生成的图表
highchart 之放大显示的几种方式
highchart 导出excel By Asp.net
为了照顾小伙伴,用asp.net 写了份highchart简单导出excel的例子,希望对大家有所帮助
- highchart导出 excel,主要用到了内部的
getCSV
,将数据post到服务端,至于服务端怎么处理大家就可以可显神通了,我所指知道的一般可以用POI
、NPOI
、aspose
、微软com+组件
等等
前端HTML
1 | <div> |
Highcharts 扩展之多张图表合并生成一张图
在highchart
的导出需求中,我们做过单个图表的导出,生成单个图片,也做过多个图表同时导出,生成多张图片。但很少遇到这样一种情况,需要将客户端的图表同时导出,并合并生成在一张图片上。
今天为大家来highchart一个扩展,原理就是在一键导出的时候,根据highchart现有的API方法去获取每个图表的SVG图片信息,然后拼接好合并成一个svg,最后提交给后台进行处理,这个功能即可将多个图表生成在一张图片上,也可以一次请求到后台生成多个图片,但需要自己在后台做svg拆分,一个一个生成。
- 步入正题,首先引入扩展部分的javascript代码到head标签区域,或者单独建一个js文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Highcharts.getSVG = function (charts) {
var svgArr = [],
top = 0,
width = 0;
$.each(charts, function (i, chart) {
var svg = chart.getSVG();
svg = svg.replace('<svg', '<g transform="translate(0,' + top + ')" ');
svg = svg.replace('</svg>', '</g>');
//svg = svg.replace('<svg', '<zg ct=' + chart.options.chartype);
//svg = svg.replace('</svg>', '</zg>');(这段注释的代码用来生成多个图片)
top += chart.chartHeight;
width = Math.max(width, chart.chartWidth);
svgArr.push(svg);
});
return '<svg height="' + top + '" width="' + width + '" version="1.1" xmlns="http://www.w3.org/2000/svg">' + svgArr.join('') + '</svg>';
};
highchart通用配置文件及使用说明
使用 highcharts
已经有好几年的时间了,用过很多图表插件!例如 funsionchart
、dhtmlxChart
、jqPlot
、JS Charts
、Open Flash Chart
、Flot
,在到国产最近比较好的 echarts
,这里面有基于javascript的,也有基于flash的,但最喜欢的还是 highcharts
,这些图表插件基本的图表功能大部分都能满足,但区别在于图表的功能可扩展性及浏览器兼容性上,highcharts
有明显的优势。
配置文件介绍
- 下面步入正题,给大家分享一个 highcharts 全局配置文件,其实也没什么,无非就是将通用api里的参数放在了一个方法里,这样初始化图表就不用每次都去写一大串配置,而是用到什么参数就写什么参数,具体请看下面这段javascript代码