先写一个借用图片的简单线性图

方法 drawImage(image, x, y)  其中 image 是 image 对象,x 和 y 是其在目标 canvas 里的起始坐标。

 var canvas = document.getElementById('canvas');canvas.width='300';canvas.height='300';var ctx = canvas.getContext('2d');draw()function draw(){var image = new Image();//创建Image对象image.src='images/1.png';//指定路径image.onload=function(){//图片加载完成后执行的函数ctx.drawImage(image,0,0);//绘制图片ctx.beginPath();//这里开始画线条ctx.moveTo(30,106);ctx.lineTo(70,46);ctx.lineTo(103,76);ctx.lineTo(170,15);//执行绘画ctx.stroke();}}

结果如下

来一个全部自己划线的(包括坐标)

var canvas = document.getElementById('canvas');canvas.width='600';canvas.height='300';var ctx = canvas.getContext('2d');var x0=30,//x轴0处坐标y0=280,//y轴0处坐标x1=560,//x轴顶处坐标y1=30,//y轴顶处坐标dis=30;draw();function draw(){//先绘制X和Y轴ctx.beginPath();ctx.lineWidth=1; ctx.moveTo(x0,y1);//笔移动到Y轴的顶部ctx.lineTo(x0,y0);//绘制Y轴ctx.lineTo(x1,y0);//绘制X轴ctx.stroke();//绘制虚线和Y轴值  var yDis = y0-y1;var n=1;ctx.fillText(0,x0-20,y0);//x,y轴原点显示0ctx.save();while(yDis>dis){ctx.beginPath();//每隔30划一个虚线ctx.setLineDash([2,2]);//实线和空白的比例ctx.moveTo(x1,y0-dis);ctx.lineTo(x0,y0-dis);ctx.fillText(dis,x0-20,y0-dis);//每隔30划一个虚线dis+=30;ctx.stroke();}ctx.restore();var xDis=90//设定月份之前的间距//绘线条、底部的月份、数据值ctx.beginPath();for(var i=0;i<6;i++){//假设有6个月var height = Math.round(Math.random()*220+20);//在一定范围内随机高度var rectX=x0+xDis*i,//x位置rectY=height;//y位置ctx.lineTo(rectX,y0-rectY);//设定线的走向ctx.fillText((i+1)+'月份',rectX-10,y0+15);//绘制最下面的月份ctx.fillText(rectY,rectX,y0-rectY-5);//显示值}//最后统一划线ctx.stroke();}

效果图

canvas实现一个线性图相关推荐

  1. python程序、画一个笑脸_使用Canvas绘制一个笑脸图

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 var data = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ...

  2. 用canvas画一个太极图(八卦图)

    用canvas画一个太极图(八卦图) 源码展示链接: https://yanhappiness.github.io/Notes/canvas_src.html 理解什么是canvas canvas是H ...

  3. html5 自动扣图,利用canvas实现一个抠图小工具

    本文作者:IMWeb 孙世吉 未经同意,禁止转载 利用canvas实现一个抠图小工具 0 前言 作为新一代的前端开发工程师,PS抠图切图已经不是必备技能了,我们有UI/交互/视觉等更专业的设计同学帮我 ...

  4. 第166天:canvas绘制饼状图动画

    canvas绘制饼状图动画 1.HTML 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 < ...

  5. 封装构造函数,用canvas写饼状图和柱状图

    封装构造函数,用canvas写饼状图和柱状图 封装函数 // 场景 function XDLScence( options ) {this.stage = options.stage;//执行场景的初 ...

  6. 利用微软平台生成报表,线性图,柱形图

    说来惭愧,以前的工作中一直借助第三方dll进行报表制作,比如线性图,柱形图. 因为现在工作的这家公司不允许随便引入第三方dll,听同事说起可以建rdl类型文件进行引入到winform窗体中,窗体上使用 ...

  7. canvas 封装一个自己的 icon 库

    canvas 封装一个自己的 icon 库 1. 概述 2. 实验目标 3. 实现思路解析与代码 3.1 创建文件 3.2 实现思路 3.3 完整代码 4. end 1. 概述 一个好的前端,是能够在 ...

  8. 用canvas实现九宫格切图之手把手教学(uniapp+ts)

    uniapp用canvas实现九宫格切图(typescript) 前言 上传图片 展示图片 画布 下载图片 最终效果 总结 前言 这几天工作比较轻松,所以就有时间发下呆,突然想起前段时间用了一个九宫格 ...

  9. 小程序利用canvas实现波浪动态图,原生canvas的部分限制

    小程序利用canvas实现波浪动态图 小程序的canvas与该动态图的问题 首先上效果图片 下面直接上代码 小程序的canvas与该动态图的问题 小程序的canvas与html的canvas实现是完全 ...

最新文章

  1. 检查linux是否安装zlib,Linux下安装zlib
  2. es6中组件属性的形式
  3. [翻译][1.4.2]Flask-Admin入门介绍
  4. 子类如果不实例化则不会调用它自身的静态构造函数
  5. Java和JavaScript区别与联系
  6. Android一个自定义的进度环:ProgressChart
  7. 孵化业务快速落地与优化
  8. 浅谈种子搜索算法及C++实现方法
  9. 一个很好用的DBHelper类(包括使用SQL语句 存储过程 事务 做相关操作) 入门级
  10. Chrome浏览器 开发者工具中的 Performance
  11. Win7 局域网内简单共享的设置
  12. 惠普服务器如何修改ip地址,HP网络打印机如何设置IP地址
  13. 条形码类型及常见条形码介绍
  14. 计算机组装与维护研究内容,计算机组装与维护论文大纲格式模板 计算机组装与维护论文提纲怎么写...
  15. postman中文汉化版
  16. 二层交换机与三层交换机区别
  17. 带宽叠加是什么意思?
  18. 求解函数最值的几种算法,梯度下降法python实现
  19. Java小白 前端后端开发 环境搭建【jdk+idea+webstorm+maven+nodejs+vue+mysql】
  20. JSP——猜英文小写字母的Web小游戏

热门文章

  1. meTools - 每个人都能拥有的在线工具网站
  2. 使用Boost::Log记录日志
  3. 设计模式-创建型模式:原型模式PrototypeModel
  4. stm32 关于GPIO寄存器操作
  5. r语言list 转换成 vector
  6. PM2.5污染物的空间地图分区统计到表(第二种)
  7. Spring框架学习笔记,超详细!!(4)
  8. 即时通讯环信IM的集成使用
  9. Linux网络相关问题
  10. 什么是A.B.C类网络 怎么区别和划分