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

宜昌网站设计公司跨境电商培训

宜昌网站设计公司,跨境电商培训,WordPress+百度+主动,企业查询软件排行榜D3.js学习记录 首先通过generateRandomData()函数生成随机数,后续可通过setInterval控制固定秒数内更新图表。 function generateRandomData() {return Array.from({ length: 24 }, () >Math.floor(Math.random() * 1000) 10);} 将d3生成图表的代码封装到 upda…

D3.js学习记录

首先通过generateRandomData()函数生成随机数,后续可通过setInterval控制固定秒数内更新图表。

   function generateRandomData() {return Array.from({ length: 24 }, () =>Math.floor(Math.random() * 1000) + 10);}

将d3生成图表的代码封装到 updateChart() 函数中,参数是传入的数据(由generateRandomData()生成),使用 .join 处理数据更新。

  function updateChart(newData) {// 数据绑定与元素更新svg.selectAll('rect').data(newData)  // 绑定新数据.join(          // 处理元素的进入、更新、退出enter => enter  // 处理新元素.append('rect').attr('width', d => d)  // 初始宽度.attr('height', 16)     // 固定高度.attr('x', 0)           // 水平起始位置.attr('y', (d, i) => i * 20),  // 垂直位置(每个间隔20px)update => update  // 处理已存在的元素.attr('width', d => d)  // 更新宽度为新数据值.attr('y', (d, i) => i * 20),  // 同步更新垂直位置(可选)exit => exit.remove()  // 移除多余元素(当数据减少时));}

由于此处d3.js使用的版本是v5,所以动画的关键是配合使用CSS,如 rect { transition: all 0.6s; }

rect {transition: all 0.6s;/* 全局过渡(可选,D3的transition更优先) */
}

【效果图】

【完整代码】

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="./style.css">
</head><body><main><h1>Today</h1><svg width="900" height="400"></svg></main><script text="script" src="./d3.min.js"></script></body>
<script>// 生成随机数据的函数(可单独提取方便复用)function generateRandomData() {return Array.from({ length: 24 }, () =>Math.floor(Math.random() * 1000) + 10);}// 选择SVG容器const svg = d3.select('svg');// 定义更新图表的函数function updateChart(newData) {// 数据绑定与元素更新svg.selectAll('rect').data(newData)  // 绑定新数据.join(          // 处理元素的进入、更新、退出enter => enter  // 处理新元素.append('rect').attr('width', d => d)  // 初始宽度.attr('height', 16)     // 固定高度.attr('x', 0)           // 水平起始位置.attr('y', (d, i) => i * 20),  // 垂直位置(每个间隔20px)update => update  // 处理已存在的元素.attr('width', d => d)  // 更新宽度为新数据值.attr('y', (d, i) => i * 20),  // 同步更新垂直位置(可选)exit => exit.remove()  // 移除多余元素(当数据减少时));}// 初始加载时绘制第一组数据updateChart(generateRandomData());// 设置定时器,每3秒更新一次数据setInterval(() => {updateChart(generateRandomData());}, 3000);
</script></html>

http://www.dtcms.com/wzjs/187910.html

相关文章:

  • 橙子建站广告怎么投放全国疫情最新情况公布
  • 南宁网站搜索引擎优化十大中文网站排名
  • 专业网站建设包括哪些新app推广方案
  • 深圳做网站公司多少钱志鸿优化网
  • 江苏省建设厅网站建造师栏如何在百度推广自己的产品
  • 在一起做网店的网站的怎么购买seo网站快速排名软件
  • ps做网站首页设计教程个人怎么做百度竞价
  • 怎么建设大型商务网站免费做网站怎么做网站吗
  • 90设计官方网站做网页设计的软件
  • 做旅游网站百度知道合伙人
  • flash网站系统seo是怎么优化的
  • 有专门做ppt的网站吗宁波seo网络推广代理公司
  • 物流公司网站建设模板宣传广告
  • 工业做网站点击宝seo
  • 工商局网站怎么做增项头条广告入口
  • 重庆网站优化seo公司链爱交易平台
  • 怎样开网站品牌推广策略分析
  • 网站开发与应用是什么seo搜索引擎优化培训班
  • 建设银行四川分行 招聘网站销售推广的方法都有哪些
  • php网站目录系统最近热搜新闻事件
  • 上海 网站制作流量大的推广平台有哪些
  • 网站页面一般做多大东莞推广系统
  • 南阳旅游网站建设百度搜索入口网址
  • 广东建设中标网站免费行情软件网站下载
  • 渭南市建设工程有限责任公司网络优化网站
  • 凡科免费建设企业网站靠谱吗西安市网站
  • 企业网站一般用什么程序做360优化大师官方网站
  • 如何做网站?种子搜索神器 bt 下载
  • 南开做网站公司2022年热点营销案例
  • 湖南常德市人民政府网百度竞价和优化的区别