项目地址: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. topcoder srm 500 div1

    problem1 link 如果decisions的大小为0,那么每一轮都是$N$个人.答案为0. 否则,如果答案不为0,那么概率最大的一定是一开始票数最多的人.因为这个人每一轮都在可以留下来的人群中 ...

  2. Array数组集合的排序

    /* ######### ############ ############# ## ########### ### ###### ##### ### ####### #### ### ####### ...

  3. SpringBoot 全局统一记录日志

    1.记录日志 使用aop来记录controller中的请求返回日志 pom.xml引入: <dependency> <groupId>org.springframework.b ...

  4. (转)MongoDB学习

    (二期)25.分布式文件存储数据库MongoDB [课程25]mongod...命令.xmind96.9KB [课程25]MongoD...概念.xmind0.5MB [课程25]MongoDB简介. ...

  5. Python实现机器学习算法:逻辑回归

    import numpy as np import matplotlib.pyplot as plt from sklearn.datasets.samples_generator import ma ...

  6. 【C#】神奇的yeild

    直接出栗子: class Program { static void Main(string[] args) { foreach (var item in FilterWithoutYield) { ...

  7. Introducing GitFlow

    Introducing GitFlow What Is GitFlow? GitFlow is a branching model for Git, created by Vincent Driess ...

  8. 自定义Exception:MVC抛出自定义异常,并以Json方式返回

    相关链接 优点: 可以统一处理所有页面的异常,对所有需要返回json数据的异常,都用同样的方法throw new DVMException().页面展示,controller的错误处理方式一样 节省编 ...

  9. Leetcode122-Best Time to Buy and Sell Stock II-Easy

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  10. HDU 6249 Alice’s Stamps(dp)

    http://acm.hdu.edu.cn/showproblem.php?pid=6249 题意: 给出n个区间,求选k个区间的最大区间并. 思路: 可能存在左端点相同的多个区间,那么此时我们肯定选 ...