前端数据可视化之使用 canvas、svg、zrender画图
随着大数据时代的到来,数据可视化的开发需求越来越多,虽然在开发中一直都有在写可视化图表,但都停留在调框架会用的阶段,最近抽时间去深入学习数据可视化,简单记录下
现在市场上的 前端数据可视化解决方案其实很多,如下:
本文主要记录下 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画图相关推荐
- 前端数据可视化可绘制地图等插件:Highcharts、Echarts和D3
前端数据可视化插件有很多,但我用过的只有Highcharts(https://www.hcharts.cn/).Echarts(http://echarts.baidu.com/)和D3(https: ...
- 用最科学的方法展示最形象的图表——前端数据可视化实践
前言 也许很多人都会觉得奇怪,在这样一个更多以后台数据分析为主的公司,为什么需要一个专注于前端的团队?今天这篇文章就来讲述那些年我们错过的前端数据可视化,以此来解答这个问题. 需求 那么,在我们的项目 ...
- FlyFish|前端数据可视化开发避坑指南(二)
FlyFish是云智慧开源的一款数据可视化编排平台.通过配置数据模型为用户提供上百种可视化图形组件,零编码即可实现符合自己业务需求的炫酷可视化大屏. 同时,FlyFish也提供了灵活的拓展能力,支持组 ...
- 前端数据可视化ECharts使用指南——制作时间序列数据的可视化曲线
我为什么选择ECharts ? 1.容易使用,好上手,官网文档优雅清晰,案例简明美观,学习时间短. 2.开源免费,压根不要什么成本,适合我这种穷屌啊.所以,在比较了MetricGraphics.js后 ...
- 前端数据可视化之高德地图
高德地图&数据可视化 仙人指路,才高八斗 区域掩模和遮罩一起使用 仙人指路,才高八斗 Gaud map在手,做啥都不愁 区域掩模和遮罩一起使用 先来搭建盒子模型和引入高德地图 然后在body里 ...
- 前端数据可视化开发平台FlyFish数据源应用教程详解
介绍 飞鱼(FlyFish)是云智慧开源的一款免费的数据可视化编排平台.通过简易的方式快速创建数据模型,通过拖拉拽的形式,快速生成一套数据可视化解决方案.在飞鱼产品中可以通过直接连接 MySQL . ...
- python读取csv数据画直方图_Python数据可视化(Pygal、svg、csv、Bar、Line)
一.pygal(图表类型Bar) 将使用Python可视化包Pygal来生成可缩放的矢量图形文件 pygal官方文档:[www.pygal.org/en/stable/](http://www.pyg ...
- 前端 | 数据可视化示例模板
效果 在线地址 : 传送门 github地址: 传送门2 觉得有用的话收藏或点个赞8 ~
- 微信小程序(数据可视化、Canvas、绘制线段、图形、太极图、文本、图像、渐变、变形)
一.数据可视化 1数据可视化概述 数据可视化Data Visualization:就是指将结构或非结构数据转换成适当的可视化图表,然后将隐藏在数据中的信息直接展现于人们面前. 2应用场景 数据报表 特 ...
- 关于 数据可视化、Canvas
一.数据可视化 1数据可视化概述 数据可视化Data Visualization:就是指将结构或非结构数据转换成适当的可视化图表,然后将隐藏在数据中的信息直接展现于人们面前. 2应用场景 数据报表 特 ...
最新文章
- vue 保留两位小数 不能直接用toFixed(2) ?
- U_boot 的 bootcmd 和bootargs参数详解
- sql server:查詢系統表
- python旋转坐标系_python实现一个点绕另一个点旋转后的坐标
- 笨办法学 Python · 续 第七部分:大作业
- Doris之审计日志插件
- LaTeX中参考文献的插入方式(不使用BibTeX)
- 苦禅箜mm让我帮她做的作业
- CentOS7如何设置屏幕不休眠
- ERP环境下内部控制系统建立与实施要点
- UML类图示例一张:公司结构
- 2021年起重机司机(限桥式起重机)考试题库及起重机司机(限桥式起重机)找解析
- CSS(3)教程 css的一般属性
- java毕业生设计学校食堂订餐管理计算机源码+系统+mysql+调试部署+lw
- 澳洲墨尔本大学的计算机专业,澳洲留学:墨尔本大学计算机专业介绍
- 使用vbs脚本操作登陆对话框-登陆QQ为例
- 论文笔记——Sparse R-CNN
- 试讲计算机领域的知识点,【教编面试】小学计算机与技术试讲模板
- 诺顿隔离/删除化境无组件
- 做BI开发,为什么一定要熟悉行业和企业业务?