一、Highcharts  series属性

1、下面是一个基本曲线图的例子:

  1. <html>
  2. <head>
  3. <meta charset="UTF-8" />
  4. <title>Highcharts 曲线图</title>
  5. <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
  6. <script src="http://code.highcharts.com/highcharts.js"></script>
  7. </head>
  8. <body>
  9. <div id="container" style="width: 550px; height: 400px; margin: 0 auto"></div>
  10. <script language="JavaScript">
  11. $(document).ready(function() {
  12. var title = {
  13. text: '城市平均气温'
  14. };
  15. var subtitle = {
  16. text: ''
  17. };
  18. var xAxis = {
  19. categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
  20. 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  21. };
  22. var yAxis = {
  23. title: {
  24. text: 'Temperature (\xB0C)'
  25. },
  26. plotLines: [{
  27. value: 0,
  28. width: 1,
  29. color: '#808080'
  30. }]
  31. };
  32.  
  33. var tooltip = {
  34. valueSuffix: '\xB0C'
  35. }
  36.  
  37. var legend = {
  38. layout: 'vertical',
  39. align: 'right',
  40. verticalAlign: 'middle',
  41. borderWidth: 0
  42. };
  43.  
  44. var series = [
  45. {
  46. name: 'Tokyo',
  47. data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2,
  48. 26.5, 23.3, 18.3, 13.9, 9.6]
  49. },
  50. {
  51. name: 'New York',
  52. data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8,
  53. 24.1, 20.1, 14.1, 8.6, 2.5]
  54. },
  55. {
  56. name: 'London',
  57. data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0,
  58. 16.6, 14.2, 10.3, 6.6, 4.8]
  59. }
  60. ];
  61.  
  62. var json = {};
  63.  
  64. json.title = title;
  65. json.subtitle = subtitle;
  66. json.xAxis = xAxis;
  67. json.yAxis = yAxis;
  68. json.tooltip = tooltip;
  69. json.legend = legend;
  70. json.series = series;
  71.  
  72. $('#container').highcharts(json);
  73. });
  74. </script>
  75. </body>
  76. </html>

例中有highcharts的常用属性,主要是series数据列。series用于设置图表中要展示的数据相关的属性,参数如下:

 参数  描述 默认值
data

显示在图表中的数据列,可以为数组或者JSON格式的数据。

如:data:[0, 5, 3, 5],或 data: [{name: 'Point 1',y: 0}, {name: 'Point 2',y: 5}]

''
name 显示数据列的名称 ''
type 数据列类型,支持 area, areaspline, bar, column, line, pie, scatter or spline line

二、Highcharts基本设置

2.1 在一个图像中有多条曲线,但是默认想只显示第一条曲线,则需要做如下设置:

  1. chart: {
  2. renderTo: 'container1',
  3. type: 'line',
  4. events: {
  5. load: function (event) {
  6. for (var i = this.series.length - 1; i > 0; i--) {
  7. this.series[i].hide(); //设置只显示第一条线,其他都不显示
  8. }
  9. }
  10. }
  11. }

2.2 去掉highcharts网站url

右下角默认会有一个其网站url存在,这会影响美观,做如下设置即可去掉:

  1. credits: {
  2. enabled: false //不显示LOGO
  3. }

或者  在 highcharts.js 中 Ctrl+F 搜索 credits属性,设置  enabled: false

2.3 动态增加曲线数量

在显示曲线后动态增加显示曲线条数:

  1. var chart = new Highcharts.Chart(options);
  2. chart.addSeries({
  3. name: '合计',
  4. data: [61, 63, 65, 67, 69, 71, 73, 70, 67, 64, 61, 57]
  5. });
  6.  
  7. chart.addSeries({ name: 'DataURL serie', dataURL: 'serie3.txt' });

2.4 动态删除曲线

  1. chart.series[0].remove();

三、Highcharts 点击

  1. $(function () {
  2. // create the chart
  3. $('#container').highcharts({
  4. chart: {
  5. events: {
  6. addSeries: function() {
  7. var label = this.renderer.label('A series was added, about to redraw chart', 100, 120)
  8. .attr({
  9. fill: Highcharts.getOptions().colors[0],
  10. padding: 10,
  11. r: 5,
  12. zIndex: 8
  13. })
  14. .css({
  15. color: '#FFFFFF'
  16. })
  17. .add();
  18.  
  19. setTimeout(function () {
  20. label.fadeOut();
  21. }, 1000);
  22. }
  23. }
  24. },
  25.  
  26. xAxis: {
  27. categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  28. },
  29.  
  30. series: [{
  31. data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
  32. }]
  33. });
  34.  
  35. // activate the button
  36. $('#button').click(function() {
  37. var chart = $('#container').highcharts();
  38.  
  39. chart.addSeries({
  40. data: [216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5]
  41. });
  42.  
  43. $(this).attr('disabled', true);
  44. });
  45. });

效果图:

       

四、图表数据动态更新

在实际使用highcharts时,数据不是手写的,经常是动态赋值data。

4.1 随机数据点

chart.events属性中添加 load 方法(图表加载事件),每秒(1000ms)随机产生数据点并生成图表。

  1. <script>
  2. Highcharts.setOptions({ global: { useUTC: false } });
  3. var chart11 = new Highcharts.Chart({
  4. chart: {
  5. renderTo: 'container11',
  6. type: 'spline',
  7. events: {
  8. load: function () {
  9. var series = this.series[0];
  10. setInterval(function () {
  11. var x = (new Date()).getTime(), // current time
  12. y = Math.random();
  13. series.addPoint([x, y], true, true);
  14. }, 1000);
  15. }
  16. }
  17. },
  18. title: {
  19. text: '实时温度'
  20. },
  21. subtitle: {
  22. text: " "
  23. },
  24. xAxis: {
  25. type: 'datetime',
  26. dateTimeLabelFormats: {
  27. day: '%H : %M'
  28. }
  29. },
  30. yAxis: {
  31. labels: {
  32. ormat: '{value} .00',
  33. style: {
  34. color: Highcharts.getOptions().colors[0]
  35. }
  36. },
  37. title: {
  38. text: '温度:摄氏度',
  39. style: {
  40. color: Highcharts.getOptions().colors[0]
  41. }
  42. },
  43. startOnTick: true, //为true时,设置min才有效
  44. min: 0,
  45. plotLines: [{
  46. value: 0,
  47. width: 1,
  48. color: 'black'
  49. }]
  50. },
  51. tooltip: {
  52. formatter: function () {
  53. return '<b>' + this.series.name + '</b><br/>' + Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' + '<span style="color:#08c">' + Highcharts.numberFormat(this.y, 2) + ' 摄氏度' + '</span>';
  54. }
  55. },
  56. legend: {
  57. enabled: true
  58. },
  59. exporting: {
  60. enabled: false
  61. },
  62. series: [{
  63. type: 'spline',
  64. name: '温度',
  65. data: (function () {
  66. var data = [], time = (new Date()).getTime(), i;
  67. // 图表初始的时候显示10个数据点(都是0)
  68. for (i = -9; i <= 0; i++) { // time是当前时间,故显示的10个数据点的x轴时间是当前时间之前的,故 i 为负
  69. data.push({
  70. x: time + i * 1000,
  71. y: 0
  72. });
  73. }
  74. return data;
  75. })()
  76. }]
  77.  
  78. });
  79.  
  80. </script>

          

4.2 在原有数据的基础上改变数据

向HighChart中添加data series,方法:chart.addseries({},trur/false);     true:重绘   false:不重绘

eg: 添加name为gloomyfish的数据列。

chart.addSeries({

id:1,

name:"gloomyfish",

data:[1,2,3]

},true);

下面是使用时的例子:

  1. <script>
  2. Highcharts.setOptions({ global: { useUTC: false } });
  3. var chart21 = new Highcharts.Chart({
  4. chart: {
  5. renderTo: 'container21',
  6. type: 'spline',
  7. marginRight: 10
  8. },
  9. title: {
  10. text: '历史温度'
  11. },
  12. subtitle: {
  13. text: " "
  14. },
  15. credits: {
  16. enabled: false
  17. },
  18. xAxis: {
  19. type: 'linear'
  20. },
  21. yAxis: {
  22. title: {
  23. text: '摄氏度'
  24. },
  25. startOnTick: true, //为true时,设置min才有效
  26. min: 0,
  27. plotLines: [{
  28. value: 0,
  29. width: 1,
  30. color: '#808080'
  31. }]
  32. },
  33. legend: {
  34. enabled: true
  35. },
  36. exporting: {
  37. enabled: false
  38. },
  39. series: [{
  40. name:"11",
  41. data:[1,2,3,4,5,6,7]
  42. }]
  43.  
  44. });
  45.  
  46. var yVal=[1,2,3,4,5,6,7];
  47. setInterval(function(){
  48.  
  49. chart21.addSeries({ //添加数据列
  50. name:"历史温度",
  51. data:yVal
  52. },true);

  53. },1000);
  54.  
  55. </script>

效果:

     

可以发现,上一秒添加的数据还是存在,在查阅资料后发现,要使用 remove() 方法来移除上一秒添加的数据:

  1. var yVal=[1,2,3,4,5,6,7];
  2. setInterval(function(){
  3.  
  4. chart21.addSeries({ //添加数据列
  5. name:"历史温度",
  6. data:yVal
  7. },true);
  8. chart21.series[0].remove(); //移除
  1. },1000);

这样修改后的效果:

         

上面是每秒添加固定的数据[1,2,3,4,5,6,7],现在稍作修改,每秒添加变化的数据,如下所示,   yVal[i]=yVal[i]+i;  每次添加数据时数组数据改变

  1. var yVal=[1,2,3,4,5,6,7];
  2. setInterval(function(){
  3.  
  4. for(var i =0;i<7;i++){ // 数组有7个元素
  5. yVal[i]=yVal[i]+i;
  6. }
  7.  
  8. chart21.addSeries({ //添加数据列
  9. name:"历史温度",
  10. data:yVal
  11. },true);
  12.  
  13. chart21.series[0].remove(); //移除
  14.  
  15. },1000);

图1是原始数据[1,2,3,4,5,6,7],图2是i=0时[1,3,5,7,9,11,13] ,图3是i=1时[1,4,7,10,13,16,19] .......

      

然后,在这里,我发现如果不把前面的数据移除,所得的图还是挺好看的,呵呵

4.3 异步动态读取数据

way1:使用Jquery的Ajax方式,调用后台获得数据,然后进行绑定的。

(1)在脚本函数里面,初始化一个chart对象,并把series数据data设置为空:

  1. series: [{
  2. type: 'pie',
  3. name: '人员数量',
  4. data: []
  5. }]

(2)通过Ajax调用后台连接获得数据,然后绑定到具体的属性上

  1. //通过Ajax获取图表1数据
  2. $.ajaxSettings.async = false;
  3. var data1 = [];
  4. $.getJSON("/User/GetCompanyUserCountJson", function (dict) {
  5. for (var key in dict) {
  6. if (dict.hasOwnProperty(key)) {
  7. data1.push([key, dict[key]]);
  8. }
  9. };
  10. chart1.series[0].setData(data1);
  11. });

(3)页面上写个div,设置id="container1"来放置图表

  1. <div id="container1" style="height: 300px;max-width:500px"></div>

way2:简例(Highcharts之动态刷新——结合后台数据)

  1. $(function(){
  2. $(document).ready(function() {
  3. Highcharts.setOptions({
  4. global: {
  5. useUTC: false//是否使用世界标准时间
  6. }
  7. });
  8. var chart;
  9. chart = new Highcharts.Chart({
  10. chart: {
  11. renderTo: 'container',
  12. type: 'spline',
  13. marginRight: 10,
  14. events: {
  15. load: function() {
  16. var series = this.series;
  17. setInterval(function() {
  18. var result = reload();
  19. var x = result.time;
  20. for(var i=0; i<series.length; i++) {
  21. var y = result.y[i];
  22. series[i].addPoint([x, y], true, true);
  23. }
  24. }, 1000*5);
  25. }
  26. }
  27. },
  28. title: {
  29. text: 'ssssss'
  30. },
  31. xAxis: {
  32. type: 'datetime',
  33. tickPixelInterval: 150
  34. },
  35. yAxis: {
  36. title: {
  37. text: 'Value'
  38. },
  39. plotLines: [{
  40. value: 0,
  41. width: 1,
  42. color: '#808080'
  43. }]
  44. },
  45. tooltip: {
  46. formatter: function () {
  47. return '<b>' + this.series.name + '</b><br/>' +
  48. Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
  49. Highcharts.numberFormat(this.y, 2);
  50. }
  51. },
  52. //图例属性
  53. legend: {
  54. layout: 'vertical',
  55. align: 'right',
  56. verticalAlign: 'top',
  57. borderWidth: 0
  58. },
  59. exporting: {
  60. enabled: false
  61. },
  62. series: create() //series属性是一个js函数的返回值,需用“js函数名()”来取得
  63. });
  64. });
  1. function create() {
  2. var series = new Array();
  3.  
  4. $.ajax({
  5. type: "POST",
  6. url: "xxxx/yyyyy.json",
  7. async: false, //表示同步,如果要得到ajax处理完后台数据后的返回值,最好这样设置
  8. success: function(result){
  9. var channels = result.key;
  10. var size = channels.length;
  11. for(var i=0; i<size; i++) {
  12. var name = channels[i].yyyy;
  13. var perTotalCnt = channels[i].xxxx;
  14. var data = function() {
  15. var data = [],
  16. time = result.time,
  17. i;
  18. for(i=-6; i<=0; i++) {
  19. data.push({
  20. x: aaaa,
  21. y: zzzz
  22. });
  23. }
  24.  
  25. return data;
  26. }();
  27. series.push({"name": name, "data": data});
  28. }
  29. }
  30. }, false); //false表示“遮罩”,前台不显示“请稍后”进度提示
  31. alert(series);
  32. return series;
  33.  
  34. }
  1. });

way3:简例(异步动态读取数据)

  1. $(function () {
  2. var chart_validatestatics;
  3. $(document).ready(function () {
  4. var options_validatestatics = {
  5. chart: {
  6. renderTo: 'container_validatestatics',
  7. type: 'column'
  8. },
  9. title: {
  10. text: '验票分析'
  11. },
  12. subtitle: {
  13. text: 'tourol.cn'
  14. },
  15. xAxis: {
  16. },
  17. yAxis: {
  18. title: {
  19. text: '人数'
  20. }
  21. },
  22. plotOptions: {
  23. bar: {
  24. dataLabels: {
  25. enabled: true
  26. }
  27. }
  28. },
  29. tooltip: {
  30. formatter: function () {
  31. return '<b>' + this.x + '</b><br/>' + this.series.name + ': ' + this.y + '人';
  32. }
  33. },
  34. credits: {
  35. enabled: false
  36. },
  37. series: [{
  38. name: "验票用户",
  39. width: 3
  40. }]
  41. }
  42. $.get("/ajaxhandler/dataupdate.ashx?operate_type=validatestatics", function (data) {
  43. var xatrnames = [];
  44. var yvalidators = [];
  45. for (var i = 0; i < data.rows.length; i++) {
  46. xatrnames.push([
  47. data.rows[i].atrname
  48. ]);
  49. yvalidators.push([
  50. data.rows[i].atrname,
  51. parseInt(data.rows[i].nums)
  52. ]);
  53. }
  54. alert(xatrnames + yvalidators);
  55. options_validatestatics.xAxis.categories = xatrnames
  56. options_validatestatics.series[0].data = yvalidators;
  57. chart_validatestatics = new Highcharts.Chart(options_validatestatics);
  58. });
  59. });
  60. });

要注意的是:x轴数组定义好后,定义y轴数据的时候要把对应在x轴上的值也push到数组里,不然会无法显示。

对应的在ajax handler中,拼接字符串并返回即可:

  1. string json = "{\"rows\":[";
  2. for (int i = 0; i < datas.Rows.Count; i++)
  3. {
  4. json += "{\"atrname\":\"" + datas.Rows[i]["name"] + "\",\"nums\":\"" + datas.Rows[i]["nums"] + "\"},";
  5. }
  6. json = json.TrimEnd(',');
  7. json += "]}";
  8. context.Response.Write(json);
  9. context.Response.Flush();
  10. context.Response.End();

4.4 同步获取数据

使用 Websocket 与服务器建立 TCP 连接之后,会一直连接,浏览器和服务器直接可以数据相互传送。

在应用 Websocket 之前,我们可以先结合前面的动态随机数据想想,如果把数据点的Y值换成了从服务器接收的数据就可以画出接收的数据。

  1. <script>
  2. Highcharts.setOptions({ global: { useUTC: false } });
  3. var chart21 = new Highcharts.Chart({
  4. chart: {
  5. renderTo: 'container21',
  6. type: 'spline'
  7. },
  8. title: {
  9. text: '历史温度'
  10. },
  11. subtitle: {
  12. text: " "
  13. },
  14. credits: {
  15. enabled: false
  16. },
  17. xAxis: {
  18. type: 'datetime',
  19. dateTimeLabelFormats: {
  20. day: '%H : %M'
  21. }
  22. },
  23. yAxis: {
  24. labels: {
  25. format: '{value} .00',
  26. style: {
  27. color: Highcharts.getOptions().colors[0]
  28. }
  29. },
  30. title: {
  31. text: '温度:摄氏度',
  32. style: {
  33. color: Highcharts.getOptions().colors[0]
  34. }
  35. },
  36. startOnTick: true, //为true时,设置min才有效
  37. min: 0,
  38. plotLines: [{
  39. value: 0,
  40. width: 1,
  41. color: '#808080'
  42. }]
  43. },
  44. tooltip: {
  45. formatter: function () {
  46. return '<b>' + this.series.name + '</b><br/>' +
  47. Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' + '<span style="color:#08c">' +
  48. Highcharts.numberFormat(this.y, 2) + ' 摄氏度' + '</span>';
  49. },
  50. crosshairs: true
  51. },
  52. legend: {
  53. enabled: true
  54. },
  55. exporting: {
  56. enabled: false
  57. },
  58. series: [{
  59. type: 'spline',
  60. name: '实时温度',
  61. //data: [0,0]
  62. data: (function () {
  63. var data = [],
  64. time = (new Date()).getTime(),
  65. i;
  66.  
  67. for (i = -9; i <= 0; i++) {
  68. data.push({
  69. //x: time + i * 1000,
  70. x: time,
  71. y: 0
  72. });
  73. }
  74. return data;
  75. })()
  76.  
  77. }]
  78.  
  79. });
  80.  
  81. setInterval(function(){
  82. var x;
  83. var y;
  84. x = (new Date()).getTime(); // 当前时间
  85. y = Math.random();
  86. chart21.series[0].addPoint([x, y], true, true); //追加点并去掉一个点 //chart1.series[0].addPoint([x, y]);追加点( 不去掉点 )
  87. },1000);
  88.  
  89. </script>

改写setInterval()函数,把Y值替换成val

由于下面的代码是直接从做过的项目中copy过来的,看的时候有的地方出现的有点突兀,不用理会,只看y值的改变就好了。

  1. function myChart(val) {
  2. var x;
  3. var y;
  4. x = (new Date()).getTime(); // 当前时间
  5. y = val;//Math.random();
  6.  
  7. chart1.series[0].addPoint([x, y], true, true); //追加点并去掉一个点 //chart1.series[0].addPoint([x, y]);追加点( 不去掉点 )
  8.  
  9. }

  10. function ParseValue(val) {
  11. var data = JSON.parse(val); //字符串转换为对象
  12.  
  13. var v = document.getElementById("device").innerHTML;
  14. if (v == data.device_id) {
  15. if (data.device_id > 9) {
  16. switch (data.value) {
  17. case 0:
  18. document.getElementById("vd").innerHTML = "关闭";
  19. break;
  20. case 1:
  21. document.getElementById("vd").innerHTML = "打开";
  22. break;
  23. case 2:
  24. document.getElementById("vd").innerHTML = "停止";
  25. break;
  26. default:
  27. }
  28. } else {
  29. document.getElementById("vd").innerHTML = data.value;
  30. }
  31. }
  32.  
  33. if (v == data.device_id) {
  34. if (data.device_id < 10) {
  35. myChart(data.value);
  36. } else {
  37. document.getElementById("container1").hidden();
  38. }
  39. }
  40. }

当然,在这之前还要建立TCP连接:

  1. <script>
  2. var ws;
  3. var SocketCreated = false;
  4. var isUserloggedout = false;
  5.  
  6. window.onload = function Connect() {
  7. if (SocketCreated && (ws.readyState == 0 || ws.readyState == 1)) {
  8. //(SocketCreated = false)&&(连接未建立)。。。。readyState属性表示ReadOnly属性的状态。等于0或者1表示连接未建立
  9. SocketCreated = false;
  10. isUserloggedout = true;
  11. ws.close();
  12. } else {
  13. //alert("准备连接到服务器 ...");
  14. document.getElementById("wsServerStatus").innerHTML = "准备连接到服务器 ...";
  15. try {
  16. if ("WebSocket" in window) {
  17. ws = new WebSocket("ws://192.168.1.108:2012");
  18. }
  19. else
  20. if("MozWebSocket" in window) {
  21. ws = new MozWebSocket("ws://192.168.1.108:2012");
  22. }
  23. SocketCreated = true;
  24. isUserloggedout = false;
  25. } catch (ex) {
  26. alert(ex, "ERROR");
  27. return;
  28. }
  29. ws.onopen = WSonOpen;
  30. ws.onmessage = WSonMessage;
  31. ws.onclose = WSonClose;
  32. ws.onerror = WSonError;
  33. }
  34. };
  35.  
  36. function WSonOpen() {
  37. ServerStatus = true;
  38. document.getElementById("wsServerStatus").innerHTML = "连接已建立";
  39. Login();
  40. };
  41.  
  42. function Login() {
  43. var loginBody = { account: "", pass_word: "" };
  44. loginBody.account = "11111111111";
  45. loginBody.pass_word = "1111";
  46. var body = JSON.stringify(loginBody);
  47.  
  48. var loginReq = { key: "/user/login", token: "", type: 1, body: body };
  49.  
  50. ws.send(JSON.stringify(loginReq));
  51. }
  52.  
  53. function WSonMessage(event) {
  54. var msg = JSON.parse(event.data);
  55. switch (msg.key) {
  56. case "/device/data":
  57. case "/device/status":
  58. var n = document.getElementById("content-main").childElementCount;
  59. for (var i = 1; i < n; i++) {
  60. try{
  61. var m = document.getElementById("content-main").children[i];
  62. m.contentWindow.ParseValue(msg.body);
  63. }catch(err){
  64. }
  65. }
  66. break;
  67. }
  68. };
  69.  
  70. function WSonClose() {
  71. ServerStatus = false;
  72. document.getElementById("wsServerStatus").innerHTML = "连接已关闭";
  73. };
  74.  
  75. function WSonError() {
  76. ServerStatus = false;
  77. document.getElementById("wsServerStatus").innerHTML = "远程连接中断";
  78. };
  79.  
  80. function WsSend(val) {
  81. ws.send(val);
  82. }
  83.  
  84. </script>

最后,关于 WebSocket 的介绍和使用,可以看我写的 WebSocket 的一个单独的总结。

Highcharts 总结的更多相关文章

  1. Highcharts中国地图热力图

    最近有个项目需要将MC销量按大陆各省统计,并以中国地图人力图效果显示.由于项目一直使用Highcharts进行图表的统计,故采用Highmaps来实现. 效果如下: 1)中国各个省.直辖市.自治区: ...

  2. Highcharts入门小示例

    一.创建条形图 1.创建div容器 <div id="container" style="min-width:800px;height:400px"> ...

  3. Highcharts配置

    一.基础使用 <script src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script> ...

  4. highcharts .net导出服务 和 两种导出方式

    highcharts 的Net导出服务  GitHub上整理的https://github.com/imclem/Highcharts-export-module-asp.net 引用两个程序集 sh ...

  5. 《Learning Highcharts》中文翻译

    在highcarts的官方网站上推荐了一本书,由于highchart在平时工作中会用到,所以我们尝试将其翻译成中文,仅作为学习highchart工具的一种方式,以方便日后查阅. 翻译图书作为学习笔记, ...

  6. highcharts饼状图使用案例

    在公司由于需要对订单数据进行分析,故使用到了highcharts工具 <block name="Js"> <script type="text/java ...

  7. highcharts

    preparation Highcharts Highcharts是一个制作图表的纯Javascript类库,主要特性如下: 兼容性:兼容当今所有的浏览器,包括iPhone.IE和火狐等等: 对个人用 ...

  8. highcharts使用笔记

    1.legend取消点击事件: 饼图:plotOptions.pie.point.events.legendItemClick = function() {return false;} 其他,如:pl ...

  9. FusionCharts和highcharts 饼图区别!

    FusionCharts ---------------脚本--------------- <script src="../../../fashioncharts/js/FusionC ...

  10. .net 下新版highcharts本地导出图片bug处理

    最近公司要用到highcharts这个插件来生成图表,所以我花了点时间研究了下. 现在最新的版本是3.0.2,这js插件居多优点就不比多说了,demo官网上也很详细.但是优点不爽的地方是,导出图片这个 ...

随机推荐

  1. c/c++优化结构控制

    一.表达式优化--使用替换程序中的乘除法 c/c++中的加减运算效率远远高于乘除运算,由于移位指令的执行速度和乘除法差不多,所以可以使用移位的方式来替换程序中的乘除法.一个数向右移一位,等于该数乘以2 ...

  2. VR技术的系统化实现阶段

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 从20世纪80年代至80年代中期,虚拟现实技术的基本概念开始逐渐形成和完善.这一时期出现了一些比较经典的 ...

  3. 封装一个mysql类(ggshop)

    接口 abstract class db{ //连接服务器 public abstract function connect($n,$u,$p); //发送查询 protected abstract ...

  4. Java中String,StringBuffer与StringBuilder的差别

    String 字符串常量: StringBuffer 字符串变量〈缓冲区〉(线程安全): StringBuilder 字符串变量〈缓冲区〉(非线程安全): 简要的说, String 类型和 Strin ...

  5. 使用脚本自动配置matlab安装libsvm和随机森林工具箱

    前言 支持向量机(SVM)和随机森林 都是用于分类的机器学习算法. 这里我需要对网上的工具箱在matlab中进行配置. 效果演示: 1.双击运行“自动配置.bat” 2.matlab会自动启动,手动配 ...

  6. 第二十九篇:使用SOUI的SMCListView控件

    列表控件是客户端应用最常用的控件之一.列表控件通常只负责显示数据,最多通知一下APP列表行的选中状态变化. 现在的UI经常要求程序猿在列表控件里不光显示内容,还要能和用户交互,显示动画等等,传统的列表 ...

  7. Python学习笔记(一)——环境搭建

    一.安装包下载: 国内镜像:32位:http://pan.baidu.com/s/1jI4q4lS        64位:http://pan.baidu.com/s/1eRPhpRW 版本更迭速度很 ...

  8. 2016"百度之星" - 资格赛(Astar Round1)

    逆元 1001 Problem A 求前缀哈希和逆元 #include <bits/stdc++.h> typedef long long ll; const int MOD = 9973 ...

  9. Tomcat配置HTTPS方式(单向)

    简要记录主要步骤备忘 1.进入到jdk下的bin目录 2.输入如下指令 keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat ...

  10. Webpack 入门指迷--转载(题叶)

    最近看到这个东西,一头雾水.看了一些资料了解了Webpack概念,大体是webpack 是一个模块绑定器,主要目的是在浏览器上绑定 JavaScript 文件. 看到题叶写的一篇介绍,写的很好,转载连 ...