项目地址:http://pan.baidu.com/s/1nvhWrwP

因为最近项目中使用到了图表,而且个人一直希望研究canvas,所以最近几天花时间对canvas好好研究了一下,并写了一个demo,下载demo下来后 npm install后,使用webpack打包后,可以找到canvas.html页面,看到具体效果,下面主要介绍我写的几个文件

canvas.js:技术绘图js

histogram.js:柱状图js

lineChart.js:折线图js

柱状图使用:

  

import {canvasPoint} from '../../assets/js/canvas';//引入的目的是获取点再canvas中的位置
import {basicInfo,histogramMousemoveEvent} from '../../assets/js/histogram';

//绘制图
function histogramCreate(width,point){
  var canvas=document.getElementById('myCanvas');
  if(!!width){
  if(width > 758)
  canvas.width = width;
  }else{
  var canvasWidth = document.getElementById('histogramPanel');
  if(canvasWidth.offsetWidth > 758)
  canvas.width = canvasWidth.offsetWidth;
  }
  addHistogramMousemove(canvas);
  var ctx=canvas.getContext('2d');
  ctx.clearRect(0,0,canvas.width,canvas.height);
  //绘制柱状图
  basicInfo(ctx,[{num:2,name:"2017-04-01"},{num:10,name:"2017-04-02"},{num:15,name:"2017-04-03"},{num:20,name:"2017-04-04"}],point);
}

window.onload = function(){
  histogramCreate();
}

window.onresize = function(){
histogramCreate();
}

//添加鼠标滑动监听事件
function addHistogramMousemove(canvas){
  canvas.addEventListener("mousemove",function(e){
  var point = canvasPoint(canvas,e);
  histogramMousemoveEvent(canvas,point);
  },false);
  canvas.addEventListener("click",function(e){
  var point = canvasPoint(canvas,e);
  histogramMousemoveEvent(canvas,point);
  },false);
}

canvas学习之柱状图的更多相关文章

  1. canvas学习之API整理笔记(二)

    前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...

  2. canvas学习(一)

    Canvas 学习之路 (一) canvas 是H5 里面神一样的东西,使得只是通过html和js就能做出非常棒的游戏和画面. 因为对前端无限的爱好,更加对canvas充满好奇,将我学习canvas的 ...

  3. canvas学习和面向对象(二)

    Canvas 学习(二) 上一篇Canvas 学习(一)中我是用canvas绘制了一些基本和组合的图形. 现在开始绘制图片和动画帧,以及面向对象的升级版本. 还是一样,看代码,所有的代码都托管在git ...

  4. canvas学习总结六:绘制矩形

    在第三章中(canvas学习总结三:绘制路径-线段)我们提高Canvas绘图环境中有些属于立即绘制图形方法,有些绘图方法是基于路径的. 立即绘制图形方法仅有两个strokeRect(),fillRec ...

  5. canvas图表(1) - 柱状图

    原文地址:canvas图表(1) - 柱状图 前几天用到了图表库,其中百度的ECharts,感觉做得最好,看它默认用的是canva,canvas图表在处理大数据方面比svg要好.那我也用canvas来 ...

  6. canvas学习笔记、小函数整理

    http://bbs.csdn.net/topics/391493648 canvas实例分享 2016-3-16 http://bbs.csdn.net/topics/390582151 html5 ...

  7. canvas学习(三):文字渲染

    一.绘制基本的文字: var canvas = document.getElementById("myCanvas") var ctx = canvas.getContext('2 ...

  8. canvas学习(二):渐变与曲线的绘制

    canvas学习(二):渐变与曲线的绘制 一:createLinearGradient()线性渐变: 二:createLinearGradient() 放射状/圆形渐变: 三:createPatter ...

  9. canvas学习(一):线条,图像变换和状态保存

    canvas学习(一):线条,图像变换和状态保存 一:绘制一条线段: var canvas = document.getElementById('canvas') var ctx = canvas.g ...

随机推荐

  1. Maven本地仓库引入自定义/第三方的jar

    在cmd下输入如下: mvn install:install-file -Dfile=D:\ojdbc7.jar -DgroupId=com.tech4j.driver -DartifactId=or ...

  2. 设置Eclipse具有字母自动联想

    Window->Preferences->Java->Editor->ContentAssist(内容助手)里面的Enable auto activation里面第二行再加上a ...

  3. linux 子shell subshell和函数

    关于子shell, subshell 参考:http://blog.csdn.net/sosodream/article/details/5683515 系统引导时的进程为 "原始进程&qu ...

  4. C# winfrom 当前程序内存读取和控制

    https://zhidao.baidu.com/question/31914620.html https://www.cnblogs.com/xcsn/p/4678322.html Process ...

  5. 深度学习课程笔记(七):模仿学习(imitation learning)

    深度学习课程笔记(七):模仿学习(imitation learning) 2017.12.10 本文所涉及到的 模仿学习,则是从给定的展示中进行学习.机器在这个过程中,也和环境进行交互,但是,并没有显 ...

  6. 【Hadoop 分布式部署 九:分布式协作框架Zookeeper架构 分布式安装部署 】

    1.首先将运行在本地上的  zookeeper 给停止掉 2.到/opt/softwares 目录下  将  zookeeper解压到  /opt/app 目录下 命令:  tar -zxvf zoo ...

  7. 剥开比原看代码10:比原是如何通过/create-key接口创建密钥的

    作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchai ...

  8. 手把手教你学习R语言

    本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者不知道从哪开始,如何进行,选择什么学习资源.虽然网络上有许多不错的免费学习资源,然而它们多过了头,反 ...

  9. socket之基础

    链接https://www.cnblogs.com/clschao/articles/9593164.html

  10. 配置多个版本的jdk

    引言: 由于公司有多个项目都需要我开发,而各个项目所依赖的jdk版本又不同,因此需要配置多个jdk; 配置方法: 什么也不说了,直接上图: 然后在其他需要制定Tomcat的地方直接引用JAVA_HOM ...