随着大数据时代的到来,数据可视化的开发需求越来越多,虽然在开发中一直都有在写可视化图表,但都停留在调框架会用的阶段,最近抽时间去深入学习数据可视化,简单记录下

现在市场上的 前端数据可视化解决方案其实很多,如下:

本文主要记录下 canvas、svg、zrender的相关知识

1、canvas

  canvas是html5的新特性,他允许我们使用canvas元素在网页上通过脚本,通常是Javascript绘制图像,<canvas> 元素本身并没有绘制能力(它仅仅是图形的容器),我们必须使用脚本来完成实际的绘图任务。getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性。

官方详细文档传送门:https://www.w3school.com.cn/tags/html_ref_canvas.asp

小demo

<!DOCTYPE html>
<html><head><title>canvas</title></head>
<body><canvas id="canvas" width="800" height="800"></canvas><script>const canvas = document.getElementById('canvas');const ctx = canvas.getContext('2d');//画矩形ctx.fillStyle = 'red';//填充颜色ctx.fillRect(0, 0, 50, 100);//绘制矩形//画线ctx.beginPath();ctx.lineWidth = 2;ctx.strokeStyle = 'blue';ctx.moveTo(100, 100);//起点坐标ctx.lineTo(150, 50);ctx.lineTo(200, 100);ctx.stroke();//绘制线段//画圆ctx.beginPath();ctx.lineWidth = 1;ctx.strokeStyle = 'green';ctx.fillStyle = 'red'ctx.arc(300, 60, 50, 0, 2 * Math.PI);//绘制圆ctx.stroke();ctx.fill();</script>
</body></html>

2、SVG(Scalable Vector Graphics)

 svg是可缩放矢量图形的意思,他是一种基于XML的图像文件格式,所以图像在放大或改变尺寸的情况下其图形质量不会有所损失,这是他的一大优点,常用于做logo和图标。

官方详细文档传送门:https://www.w3school.com.cn/svg/index.asp

<!DOCTYPE html>
<html><head><title>SVG</title></head>
<body><svg width="800" height="800"><rect width='100' height='100' style="fill:red" /><line x1='150' y1='100' x2='250' y2='50' style="stroke: blue; stroke-width:1;" /><line x1='250' y1='50' x2='350' y2='100' style="stroke: blue; stroke-width:1;" /><circle cx='450' cy='60' r='50' stroke='green' stroke-width='2' fill='red'></circle><!-- 画点 --><line x1='570' y1='75' x2='571' y2='76' style="stroke: red; stroke-width:1;" /></svg>
</body>
</html>

3、zrender

   zrender是二维绘图引擎,它提供 Canvas、SVG、VML 等多种渲染方式。ZRender 也是 ECharts 的渲染器。

官方详细文档传送门:https://ecomfe.github.io/zrender-doc/public/api.html

<!DOCTYPE html>
<html><head><title>zrender</title><script src="https://cdn.bootcss.com/zrender/4.0.7/zrender.min.js"></script>
</head>
<body><div id="container" style="width: 800px; height: 800px;"></div><script>const zr = zrender.init(document.getElementById('container'));const rect = new zrender.Rect({shape: {x: 0,y: 0,width: 100,height: 100},style: {fill: 'red',lineWidth: 0}})const line = new zrender.Polyline({shape: {points: [[150, 100],[250, 50],[350, 100]]},style: {stroke: 'blue',lineWidth: 2}})const circle = new zrender.Circle({shape: {cx: 450,cy: 60,r: 50,},style: {fill: 'red',stroke: 'blue',lineWidth: 2}})const point = new zrender.Polyline({shape: {points: [[570, 50],[571, 51],]},style: {stroke: 'red',lineWidth: 2}})zr.add(rect);zr.add(line);zr.add(circle);zr.add(point);</script>
</body>
</html>

ps:学习过程的简单记录,如有不恰当之处,欢迎指正!

前端数据可视化之使用 canvas、svg、zrender画图相关推荐

  1. 前端数据可视化可绘制地图等插件:Highcharts、Echarts和D3

    前端数据可视化插件有很多,但我用过的只有Highcharts(https://www.hcharts.cn/).Echarts(http://echarts.baidu.com/)和D3(https: ...

  2. 用最科学的方法展示最形象的图表——前端数据可视化实践

    前言 也许很多人都会觉得奇怪,在这样一个更多以后台数据分析为主的公司,为什么需要一个专注于前端的团队?今天这篇文章就来讲述那些年我们错过的前端数据可视化,以此来解答这个问题. 需求 那么,在我们的项目 ...

  3. FlyFish|前端数据可视化开发避坑指南(二)

    FlyFish是云智慧开源的一款数据可视化编排平台.通过配置数据模型为用户提供上百种可视化图形组件,零编码即可实现符合自己业务需求的炫酷可视化大屏. 同时,FlyFish也提供了灵活的拓展能力,支持组 ...

  4. 前端数据可视化ECharts使用指南——制作时间序列数据的可视化曲线

    我为什么选择ECharts ? 1.容易使用,好上手,官网文档优雅清晰,案例简明美观,学习时间短. 2.开源免费,压根不要什么成本,适合我这种穷屌啊.所以,在比较了MetricGraphics.js后 ...

  5. 前端数据可视化之高德地图

    高德地图&数据可视化 仙人指路,才高八斗 区域掩模和遮罩一起使用 仙人指路,才高八斗 Gaud map在手,做啥都不愁 区域掩模和遮罩一起使用 先来搭建盒子模型和引入高德地图 然后在body里 ...

  6. 前端数据可视化开发平台FlyFish数据源应用教程详解

    介绍 飞鱼(FlyFish)是云智慧开源的一款免费的数据可视化编排平台.通过简易的方式快速创建数据模型,通过拖拉拽的形式,快速生成一套数据可视化解决方案.在飞鱼产品中可以通过直接连接 MySQL . ...

  7. python读取csv数据画直方图_Python数据可视化(Pygal、svg、csv、Bar、Line)

    一.pygal(图表类型Bar) 将使用Python可视化包Pygal来生成可缩放的矢量图形文件 pygal官方文档:[www.pygal.org/en/stable/](http://www.pyg ...

  8. 前端 | 数据可视化示例模板

    效果   在线地址 : 传送门 github地址: 传送门2 觉得有用的话收藏或点个赞8 ~

  9. 微信小程序(数据可视化、Canvas、绘制线段、图形、太极图、文本、图像、渐变、变形)

    一.数据可视化 1数据可视化概述 数据可视化Data Visualization:就是指将结构或非结构数据转换成适当的可视化图表,然后将隐藏在数据中的信息直接展现于人们面前. 2应用场景 数据报表 特 ...

  10. 关于 数据可视化、Canvas

    一.数据可视化 1数据可视化概述 数据可视化Data Visualization:就是指将结构或非结构数据转换成适当的可视化图表,然后将隐藏在数据中的信息直接展现于人们面前. 2应用场景 数据报表 特 ...

最新文章

  1. vue 保留两位小数 不能直接用toFixed(2) ?
  2. U_boot 的 bootcmd 和bootargs参数详解
  3. sql server:查詢系統表
  4. python旋转坐标系_python实现一个点绕另一个点旋转后的坐标
  5. 笨办法学 Python · 续 第七部分:大作业
  6. Doris之审计日志插件
  7. LaTeX中参考文献的插入方式(不使用BibTeX)
  8. 苦禅箜mm让我帮她做的作业
  9. CentOS7如何设置屏幕不休眠
  10. ERP环境下内部控制系统建立与实施要点
  11. UML类图示例一张:公司结构
  12. 2021年起重机司机(限桥式起重机)考试题库及起重机司机(限桥式起重机)找解析
  13. CSS(3)教程 css的一般属性
  14. java毕业生设计学校食堂订餐管理计算机源码+系统+mysql+调试部署+lw
  15. 澳洲墨尔本大学的计算机专业,澳洲留学:墨尔本大学计算机专业介绍
  16. 使用vbs脚本操作登陆对话框-登陆QQ为例
  17. 论文笔记——Sparse R-CNN
  18. 试讲计算机领域的知识点,【教编面试】小学计算机与技术试讲模板
  19. 诺顿隔离/删除化境无组件
  20. 做BI开发,为什么一定要熟悉行业和企业业务?

热门文章

  1. 特征探索性分析Exploring_features
  2. win10磁盘如何解锁bitlocker,解决分区助手无法调整分区问题
  3. Kibana 操作 Elasticsearch
  4. 你以为在做的是微服务?不!你做的只是分布式单体!
  5. linux搭建dlna媒体服务器,Serviio:一款功能强大的DLNA媒体服务器软件
  6. 传感器实验——SHT20温湿度传感器
  7. java 库知乎_基于原生Java API爬取最新版本知乎百万用户数据
  8. 2021年机修钳工(中级)报名考试及机修钳工(中级)考试资料
  9. Echarte柱状图文字位置
  10. Java电阻计算器(二)