首页 > 其他分享 >第二十三篇 - d3绘制直方图

第二十三篇 - d3绘制直方图

时间:2023-11-15 20:47:28浏览次数:37  
标签:week product attr 第二十三 svg padding 直方图 d3

当下探讨用d3制作简单横向直方图

效果图:

一、下载d3【npm install d3】

二、导入d3【import * as d3 from "d3";】

二、画直方图

参考链接:https://www.cnblogs.com/xuepei/p/7527082.html

1. 准备表格数据

rectlist:[
        {
          week: "星期一",
          product: 8,
        },
        {
          week: "星期二",
          product: 16,
        },
        {
          week: "星期三",
          product: 3,
        },
        {
          week: "星期四",
          product: 12,
        },
        {
          week: "星期五",
          product: 5,
        },
        {
          week: "星期六",
          product: 13,
        },
        {
          week: "星期天",
          product: 18,
        },
      ]

 

2. 处理表格数据

// 求和计算total的值
let sum = 0
for(let i=0;i<this.rectlist.length;i++){
   sum = sum + this.rectlist[i].product
}
// 得到纵轴描述列表
const nameArr = this.rectlist.map((item)=> { return item.week});
// 得到横轴数值列表即每个矩形的长度
const valueArr = this.rectlist.map((item)=> { return item.product});

 

3. 画横纵坐标轴

      //指定容器的宽高
      let padding = {top: 100, right: 20, bottom: 20, left: 20},
          width = 600 - padding.right - padding.left,
          height = 470 - padding.bottom - padding.top;

      //x,y轴比例尺
      let xscale = d3.scaleLinear().domain([0,d3.max(valueArr) + 3]).rangeRound([0,width-10]);
      let yscale = d3.scaleBand().domain(nameArr).rangeRound([height,0]).padding(0.5);

      //创建svg
      const svg = d3.select('#bar-chart-container').append('svg')
          .attr('width',width + padding.left + padding.right)
          .attr('height',height + padding.top + padding.bottom);
      //添加g标签
      const g = svg.append('g')
          .attr('transform',`translate(${padding.top}, ${padding.left})`)

      //像svg添加x轴
      g.append('g')
          .attr('class','axis')
          .attr('transform',`translate(0, ${height})`)
          .call(d3.axisBottom(xscale))
          .attr('font-weight','blod')
      //像svg添加y轴
      g.append('g')
          .attr('class','axis')
          .call(d3.axisLeft(yscale))

 1111

标签:week,product,attr,第二十三,svg,padding,直方图,d3
From: https://www.cnblogs.com/smart-zihan/p/17834716.html

相关文章

  • 808-ORI-D3R600服务器-多路PCIe3.0的双CPU通用工作站
      一、机箱功能和技术指标:系统系统型号ORI-SR630主板支持EEB(12'*13')/CEB(12'*10.5')/ATX(12'*9.6')/MicroATX前置硬盘最大支持8个3.5寸(兼容25寸)SATA硬盘+2*2.5(后置)电源类型CRPS元余电源,标准ATX电源散热系统......
  • elrond32
    前置知识int__cdeclmain(intargc,char**argv)*argc:整数,为传给main()的命令行参数个数。*argv:字符串数组。argv[0]为程序运行的全路径名;argv[1]为在DOS命令行中执行程序名后的第一个字符串;argv[2]为执行程序名后的第二个字符串;...argv[argc]为NULL。 所以说......
  • 第二十三次打靶
    靶机介绍1)靶机地址:https://download.vulnhub.com/cereal/Cereal.ova2)靶机难度:高(最接近真实场景)3)打靶目标:取得root权限+2Flag4)涉及攻击方法:主机发现、端口扫描、信息收集、路径枚举、密码爆破、域名解析、匿名FTP、子域名爆破、源码审计、反序列化漏洞、编写漏洞利用代......
  • ECharts渐变温度直方图
    ECharts渐变直方图,根据具体的值调整色带,使所有颜色看起来协调一致。直接在series数组中的对象中添加如下代码即可:itemStyle:{color:function(params){constcs=['rgba(9,132,227,1)','rgba(0,206,201,1)','rgba(253,203,110,1)','rgba(225,112,85,......
  • Python GDAL绘制多个栅格的像素直方图
      本文介绍基于Python中gdal模块,实现对大量栅格图像批量绘制直方图的方法。  首先,明确一下本文需要实现的需求:现需对多幅栅格数据文件进行依据其像元数值的直方图绘制,具体绘制内容即各栅格图像像素数值的分布情况;所有栅格数据都保存在同一目标路径下,且均为.tif格式;而目标路径......
  • 代码随想训练营第二十三天(Python)| 669. 修剪二叉搜索树 、108.将有序数组转换为二叉搜
    669.修剪二叉搜索树树的修剪方式赋值。1、递归法classSolution:deftrimBST(self,root:Optional[TreeNode],low:int,high:int)->Optional[TreeNode]:ifrootisNone:returnNoneifroot.val<low:returnself.tr......
  • 易基因:ChIP-seq等揭示BRWD3调控KDM5活性以维持H3K4甲基化水平的表观机制|PNAS
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。组蛋白修饰对调控染色质结构和基因表达至关重要,组蛋白修饰失调可能导致疾病状态和癌症。染色质结合蛋白BRWD3(BromodomainandWDrepeat-containingprotein3)是Cul4-DDB1E3泛素连接酶复合体的已知底物特异性因子,敲......
  • 系统集成易混淆知识点汇总-直方图、帕累托图
    概念:(1)直方图:直方图是一种特殊形式的条形图,用于描述集中趋势、分散程度和统计分布形状。(2)帕累托图:帕累托图是一种特殊的垂直条形图,用于识别造成大多数问题的少数重要原因(2-8理论)。区别:(1)直方图不会对问题或原因进行排序,帕累托图会将问题或原因从左向右依次排序。(2)直方图通常只......
  • 导入失败!检索 COM 类工厂中 CLSID 为 {36D27C48-A1E8-11D3-BA55-00C04F72F325} 的组件
    出现以上错误,需要进行如下配置:一、配置project的DCOM权限1:在服务器上安装office的Project软件.2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"4:在"DCOM配置"中找到"Micro......
  • 第二十三周_周报
    学习时间:10.9-10.15一、完成内容学习方面:跑通了《LearningTrajectoryDependenciesforHumanMotionPrediction》这篇论文的代码。项目方面:实现小程序普通用户的群众意见、政务答复和我的的前端页面,以及积分模块的1/3的页面、除了师兄今天改的文件上传的接口,其他的写了的页......