当前位置: 首页 > wzjs >正文

《网站建设验收报告》淘宝网站优化实例

《网站建设验收报告》,淘宝网站优化实例,住建局查询系统,泰州学习网站建设前言 Canvas 可以用来创建各种 数据可视化 图表和图形,通过绘制不同的形状、线条和颜色来展示数据的特征和趋势。 数据可视化的基本原理是将数据转化为可视化的图形元素,以便人们更容易理解和分析数据。这涉及到以下几个方面: 数据映射&…

前言

Canvas 可以用来创建各种 数据可视化 图表和图形,通过绘制不同的形状、线条和颜色来展示数据的特征和趋势。

数据可视化的基本原理是将数据转化为可视化的图形元素,以便人们更容易理解和分析数据。这涉及到以下几个方面:

  • 数据映射:将数据值映射到可视化元素的属性上,如位置、大小、颜色等。例如,将数值映射到柱状图的高度、折线图的点坐标或饼图的扇形角度。
  • 视觉编码:选择合适的可视化元素和属性来传达数据的特征。例如,使用不同的颜色来区分不同的数据类别,使用线条的粗细来表示数据的大小。
  • 布局和排版:合理安排可视化元素在画布上的位置,以提高可读性和美观度。例如,在柱状图中保持柱子之间的间距均匀,在折线图中使线条清晰可辨。
  • 交互性:为可视化添加交互功能,如鼠标悬停显示数据值、缩放和平移等,以增强用户对数据的探索和理解。

柱状图

  • 首先,确定数据和图表的尺寸。假设我们有一组数据表示不同类别的数量 Canvas 上绘制柱状图。
  • 然后,计算每个柱子的宽度和间距。如果有 n 个数据点,那么柱子的宽度可以是画布宽度除以数据点数量,再减去一些间距。
  • 接着,根据数据值计算每个柱子的高度。可以将数据值映射到画布的高度范围内,例如,数据值的最大值对应画布的高度,其他数据值按比例缩放。
  • 最后,使用 fillRect() 方法在 Canvas 上绘制每个柱子。可以为不同的柱子设置不同的颜色,以区分不同的数据类别。

请添加图片描述

以下是一个简单的用 Canvas 绘制柱状图的示例代码:

    // 可视化(柱状图)init() {var canvas = document.getElementById('myCanvas')var ctx = canvas.getContext('2d')var data = [100, 200, 150, 250, 220, 140]var width = canvas.widthvar height = canvas.heightvar barWidth = width / data.length - 10 // 柱子宽度,减去一些间距var maxDataValue = Math.max(...data)for (var i = 0; i < data.length; i++) {var barHeight = (data[i] / maxDataValue) * height - 20ctx.fillStyle = '#3e7bfa'ctx.fillRect(i * (barWidth + 10) + 5, height - barHeight, barWidth, barHeight)}},

饼图

  • 首先,确定数据和图表的尺寸。假设我们有一组数据表示不同类别的数量以及相对应的颜色。
  • 然后,计算canvas中心点绘制起始点,确定饼图半径,方便绘制圆形。
  • 接着,根据数据值计算每个数据占比。可以将数据值映射到画布的圆半径范围内,例如,数据值的最大值对应原型占比大小,其他数据值按比例缩放。
  • 最后,使用 arc() 方法在 Canvas 上绘制每个弧度边框。可以为不同的饼图区域设置不同的颜色,以区分不同的数据类别,用fill()填充完成饼图绘制。

请添加图片描述

以下是一个简单的用 Canvas 绘制柱状图的示例代码:

 // 可视化(饼图)init1() {var canvas = document.getElementById('myCanvas1')var ctx = canvas.getContext('2d')var data = [30, 40, 20, 10, 50, 10, 55]var colors = ['#FF5733', '#33FF57', '#3357FF', '#F333FF', '#33FFF5', '#F533FF', '#FF3357']var total = data.reduce((a, b) => a + b, 0)var startAngle = 0for (var i = 0; i < data.length; i++) {var endAngle = startAngle + (data[i] / total) * 2 * Math.PIctx.fillStyle = colors[i] // 不同的颜色表示不同的数据部分ctx.beginPath()ctx.moveTo(canvas.width / 2, canvas.height / 2)ctx.arc(canvas.width / 2, canvas.height / 2, canvas.height / 2 - 20, startAngle, endAngle)ctx.closePath()ctx.fill()ctx.lineWidth = 1 // 边框宽度ctx.strokeStyle = '#fff' // 边框颜色ctx.stroke() // 绘制边框startAngle = endAngle}},

折线图

  • 首先,确定数据和图表的尺寸。假设我们有一组数据表示不同类别的数量Canvas 上绘制折线图起始坐标轴。
  • 然后,计算各个数据点位,绘制数据点。
  • 接着,根据数据值计算每个数据值至下个数据点位置绘制连接线
  • 最后,使用stroke()完成连线

请添加图片描述

  // 可视化(折线图)init2() {var canvas = document.getElementById('myCanvas2')var ctx = canvas.getContext('2d')var data = [0, 40, 20, 10, 50, 10, 55]var padding = 40 // 图表周围的填充var xStep = (canvas.width - 2 * padding) / (data.length - 1) // x轴上每一步的大小var maxY = Math.max(...data) // 数据中的最大值,用于缩放y轴// 绘制坐标轴ctx.beginPath()ctx.moveTo(padding, 0)ctx.lineTo(padding, canvas.height - 20)ctx.lineTo(canvas.width - padding, canvas.height - 20)ctx.stroke()// 绘制数据点for (var i = 0; i < data.length; i++) {var x = padding + i * xStepvar y = canvas.height - 20 - (data[i] / maxY) * (canvas.height - 2 * padding)// 绘制数据点ctx.beginPath()ctx.arc(x, y, 2, 0, 2 * Math.PI)ctx.fillStyle = '#3357FF'ctx.fill()// 绘制连接线if (i > 0) {ctx.beginPath()ctx.moveTo(prevX, prevY)ctx.lineTo(x, y)ctx.strokeStyle = '#3357FF'ctx.lineWidth = 2ctx.stroke()}// 更新上一个点的坐标var prevX = xvar prevY = y}}

到此canvas进阶可视化应用学习结束,道阻且长,行则将至。与诸君共勉。 ⭐️


文章转载自:

http://o2QVEAnU.hLcLr.cn
http://ds3xK95A.hLcLr.cn
http://En3BXMOj.hLcLr.cn
http://RhwcFbCo.hLcLr.cn
http://gzixm5IQ.hLcLr.cn
http://hpDNroHm.hLcLr.cn
http://MIWuPECV.hLcLr.cn
http://zhIBOVf1.hLcLr.cn
http://cjMepqPc.hLcLr.cn
http://NJRma0t1.hLcLr.cn
http://YFTVbgPJ.hLcLr.cn
http://OQJrtddl.hLcLr.cn
http://NZxiCVer.hLcLr.cn
http://SpFkfwo4.hLcLr.cn
http://EcTHgnU3.hLcLr.cn
http://Bi08zAba.hLcLr.cn
http://m8q83Mwp.hLcLr.cn
http://g2FFPhgD.hLcLr.cn
http://Z99KBMuz.hLcLr.cn
http://GBy7T7jE.hLcLr.cn
http://JcoACl3T.hLcLr.cn
http://bmhqKGDb.hLcLr.cn
http://NQdtuaqe.hLcLr.cn
http://wXjNkRLD.hLcLr.cn
http://RpzoaH0A.hLcLr.cn
http://vLk0KvE6.hLcLr.cn
http://Zbw9qfHo.hLcLr.cn
http://YqWr5ONf.hLcLr.cn
http://b7PyOyNP.hLcLr.cn
http://n7JJN3pL.hLcLr.cn
http://www.dtcms.com/wzjs/693587.html

相关文章:

  • 电脑网站怎么创建到桌面上凡科网营销推广
  • php培训机构企业做网站wordpress中英文建站
  • 网站注册系统怎么做sae wordpress 伪静态
  • 网页制作网站制作WordPress大前端5
  • 黄骅市官方网站vue新增页面
  • 网站开发实现总结建设钓鱼网站源码
  • 鞍山做网站哪家好cms自助建站系统
  • 安康创宇网站制作建设wordpress积分冻结
  • 网站打开慢怎么回事手工艺品网站建设侧胡顺
  • 学做网站书籍呼和浩特网站制作
  • 怎样做好网站推广网上做国外兼职网站
  • 广州推广seo优化方案数学2023版电子版
  • 在本地搭建多个网站怎么做百度网盘链接网站
  • 东莞做网站电话模板网站建设信息
  • api接口开发网站开发贸易网站有哪些
  • 网站主页设计素材短视频营销国内外研究现状
  • 动态Js文件 做网站标题网络设计基本原则
  • 免费做app的网站有哪些数字城市建设网站
  • 小学做试卷的网站wordpress 静态页面显示文章
  • 北京专业响应式网站建设wordpress导出工具栏
  • 开篇网站推广台州大型网站建设
  • 南通网站推广优化公司建筑设计研究生考试科目
  • 做公司中文网站需要注意什么tp框架做餐饮网站
  • 专门做投标书的网站网站建设设计费用
  • 建材行业网站建设免费红色ppt模板网站
  • pp视频在线观看免费大全下载seo是哪个英文的缩写
  • 一个app多少钱重庆seo排名方法
  • 在百度做推广送网站好吗服务器 多wordpress
  • 山东建设和城乡建设厅注册中心网站个人如何做公益网站
  • 江苏建设厅施工员证报名网站如何创建网站老鱼网