首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

手把手带你上手D3.js数据可视化系列(二)手把手带你上手D3.js数据可视化系列(二)

下一篇会回到基础的 D3.js 数据可视化的讲解上。...画布设置好后,先来整体看看大西洋手抄本可视化作品源码里是如何根据画布大小和数据多少计算每个矩形宽度 rectWidth 的,由于矩形高度均是宽度的1.5倍,所以无需另外计算。...初步算出矩形实际宽度 然后源码里通过下面的公式初步算出矩形实际宽度 rectWidth,可以看出来大概是想通过所有矩形整体面积等于容器面积的方式,但似乎又有点不同。...而且后面实际绘制矩形时,就会发现确实是矩形实际高度为实际宽度的1.5倍,而不是整体高度为整体宽度的1.5倍,所以可知这里是近似后,应该就是为了简化计算。...;接着容器宽度除以单个矩形整体宽度,并向下取整,就是每行最后矩形个数 columnNum;最后绘制矩形同样用这三个步骤 svg.selectAll('rect').data(dataset).join(

3K10

Android自定义View实现可拖拽缩放的矩形

本文实例为大家分享了Android自定义View拖拽缩放矩形框的具体代码,供大家参考,具体内容如下 在开发项目中,需要一个矩形框来实现截屏功能,并且还需要可以任意拖拽和缩放,这就需要自定义View来实现了...private BorderedText mBorderedText; // 标题 或 名字 private String mTitle; // 概率 private float mConfidence; // 矩形框...Canvas canvas) { super.onDraw(canvas); // switch (mCornerAngle) { // case RIGHT_CORNER:// 绘制 损害框(直角矩形框...", mTitle, (100 * mConfidence)) // : String.format("%.2f", (100 * mConfidence)); // // // 在 直角矩形框...} else if (nearbyPoint(cx, cy) < 4) { MODE = MODE_POINT;//矩形点上 } else { MODE = MODE_OUTSIDE;//矩形外部 }

1.6K41

手把手带你上手D3.js数据可视化系列(一)手把手带你上手D3.js数据可视化系列(一)

其中视觉元素可以是散点图里的圆圈,柱形图、直方图里的矩形,折线图里的线条等等;布局核心是要知道每个元素的x/y坐标,可以是自己计算出来,也可以是 D3.js 自带的许多布局函数生成的。...接下来以矩形为例,带大家看看 D3.js 的一些用法。 首先需要一个 SVG 画布来放置后续的视觉元素,其实还会放标题/坐标轴/图例等等,这里可能还用不到,以后会介绍。...,很简单的 CSS 选择器用法; 接着通过 append 添加 svg 元素,然后设置其的宽高和背景色,这里为了演示方便,设置成浏览器网页窗口高度的全部和宽度的一半,大家也可以撑满网页窗口,或者用固定大小如...现在我们要在画布里画一个矩形/rect,同样用 append 加上元素名即可,然后设置 x/y 位置坐标(矩形左上角的坐标,而不是中心点的坐标)、矩形宽高(数字均为像素值,如100就是100px)和颜色即可...x 坐标的计算公式是 20 + d * 70,这里希望每一行的最后一个矩形整体都在画布内,即 x 坐标加上矩形宽度要小于画布宽度

4.2K20

好看的桑基图是如何炼成的!

Sankey Diagram, 也叫做桑基图,是一种展示数据流的可视化方式,一张典型的桑基图示例如下 这张图展示的是不同国家之间的人口流动,可以看到图中包含了如下几个因素 1. node, 即节点,常用矩形方块和文字注释来表示...数据总是从source流动到了target,而且1个source会对应多个target, 1个target也会有多个source, 为了更加量化的展示同一个节点不同流入/流出数据的比例,采用了link的宽度这一属性...,可以看到link的宽度矩形节点的高度是呈比例的,source节点的所有流出数据的link总宽度等于节点的高度,对应target节点,则所有流入数据的link的总宽度等于节点的高度。...就美观性而言,首推d3.js, 这是一个基于javascript的可视化库,支持多种类型的可视化,桑基图也不在话下,具体的代码可以参考如下链接 https://observablehq.com/@d3/...sankey 但是这个需要javascript的编程基础, 为了方便R语言的用户,有人开发了NetworkD3这个R包,可以在R中实现使用d3.js来绘图,基础用法如下 > library(networkD3

1.5K20

手把手带你上手D3.js数据可视化系列(三)手把手带你上手D3.js数据可视化系列(三)

- 牛衣古柳 - 2021.07.30」、「手把手带你上手D3.js数据可视化系列(二) - 牛衣古柳 - 2021.08.10」主要为了带大家熟悉 D3.js 绘制 SVG 元素等操作,所以其他地方怎么简单怎么来...这里矩形宽度 rectWidth 为50px,高度 rectHeight 为80px,矩形上下左右间距为10px,每行最多17个矩形;通过取余取整操作指定每个矩形的坐标就能布局好。...假如都是直接在 bounds 里添加矩形,因为后续图例里也有矩形,那时候 bounds.selectAll('rect') 选中矩形时可能就会把这里的矩形给选中,就需要再通过设置 class 样式名进行避免...为了将分区数值大小映射成右侧区域宽度的像素值,需要用到 D3.js 里很有用的比例尺,其实本质就是个函数,线性比例尺就是线性函数,通过 .domain() 设置数据里的最小值和最大值,最小值这里设成0,...另外上面也说了比例尺其实就是个函数,所以直接设置矩形宽度时,直接调用 legendWidthScale() 并传入数据集里每项的分区数值即可。

2.3K20

使用JavaScript和D3.js实现数据可视化

.js 我们将在本教程中使用d3.min.js文件,请在HTML文件中引用d3.js。...回到我们的JavaScript文件中,我们可以将属性链接到SVG,使其成为网页的完整高度和宽度。我们将.attr()用于属性。为了让它更具可读性。确保将分号向下移动到变量声明的末尾。...我们的矩形将包含4个属性: ("height", "height_in_pixels") 对应矩形的高度 ("width", "width_in_pixels")对应矩形宽度 ("x", "distance_in_pixels...margin: 0; height: 100% } ​ .bar { fill: #0080FF; stroke: black; stroke-width: 5 } 这将为我们的矩形提供宽度为...您可以通过访问GitHub上的D3 API来了解有关d3.js的更多信息。更多前端教程请前往腾讯云+社区学习更多知识。

21.7K30

从0到1设计通用数据大屏搭建平台

二、快速了解可视化大屏2.1 什么是数据可视化从技术层面上来讲,最直观的就是前端可视化框架:Echart、Antv、Chart.js、D3.js、Vega 等,这些库都能帮我们快速把数据转换成各种形式的可视化图表...三、设计思路3.1 技术选型前端框架:React 全家桶(个人习惯)可视化框架:Echarts\DataV-React (封装度高,json结构的配置项易拓展) D3.js(可视化元素粒度小、定制能力强...)拖拽插件:dnd-kit (满足树状结构视图的跨组件拖拽)布局插件:React-Grid-Layout(网格自由布局,修改源码,支持多个方向的拖拽,自由布局、锁定缩放比等)3.2 架构设计下图是我们搭建平台的整体架构设计...① vh、vw、rem组合//vw vh单位 w3c的官方解释 vw:1% of viewport’s width vh:1% of viewport’s height//例如,设计稿的宽度为1920px...3、拖拽器实现背景:React-Grid-Layout 拖拽插件不支持自由布局和组件不同纬度拖拽:解决方案:通过分析源码,对不同纬度的拖拽事件以及拖拽目标碰撞事件进行了重写,并且也拓展了锁定宽高比、旋转透明度等功能

3.1K40

Fabric.js 锁定背景图,不受缩放和拖拽的影响🎃

如果你的项目有画布拖拽、缩放等功能,而且你不希望背景图跟随拖拽或缩放,那一定要往下读。 本文主要讲解如何锁定背景图,锁定背景图其实只需设置1个属性即可。...本文会添加滚轮缩放画布、拖拽画布等功能来测试 “锁定背景图” 的效果。 应该可以清晰看出,不管如何拖拽和缩放画布,背景图都纹丝不动。...添加背景图、矩形和圆形 为了方便演示,我要设置一个背景图和两个图形元素,缩放时只会修改图形元素,背景图是一动不动的。 // 省略部分代码 fabric.Image.fromURL('../.....top: 30, // 距离容器顶部 60px left: 100, // 距离容器左侧 200px fill: 'orange', // 填充a 橙色 width: 60, // 宽度...最后添加拖拽画布事件。

2.8K20

【Canvas】入门 - 实现图形以及图片绘制

功能 开发小游戏:微信小游戏开发 可视化数据(数据图表化) 数据可视化库:百度ECharts、d3.js 、three.js、highcharts 地图:例如百度地图、高德地图等 使用步骤 canvas...填充,是将闭合路径的内容填充成具体的颜色,默认为黑色 如果所有的描点都没有构成封闭结构,也会自动构成一个封闭图形 lineWidth :设置线宽 ctx.lineWidth 设置或返回当前的线条宽度...api 快速绘制矩形的方法 rect() 语法 ctx.rect(x,y,width,height) x,y是矩形左上角坐标,width和height都是以像素计 rect方法只是规划了矩形的路径,并没有填充和描边...) 此方法直接进行fill填充绘制,不会产生路径 清除矩形 clearRect(x,y,width,height) let canvas = document.querySelector(...ctx.fillStyle = '#a19' ctx.fillRect(300,300,200,100) //在(300,300)的地方填充一个宽200高100的矩形

1.1K20

Python数据可视化,我是如何做出泡泡堆积关联图

但在 Python 中就不会这么乐观 有机会我会分享 d3.js 的做法,你会发现他与 matplotlib 的思路很相似 本文所需要的库如下: 行8:cycler 包只是为了方便定义颜色板 数据是这样子...比如上面的堆积图的柱子宽度显然不是一个合理映射属性。 解决方法就是用其他的"图形"继续做映射。...注意这里的 -25 是对应图表上y轴的数值 看看图表: 下一步,加上中间连接修饰的矩形框 ---- 画图形 matplotlib 内置了许多基本图形,因此创建图形不是什么难事: 这是在 行9:创建一个矩形...比如,[0,40] 的40,相当于指定矩形的左下角点位于 y 轴值为 40 的位置 但是,[0,40] 的 0 应该表示的是 x 轴,为什么是0?...第一个柱子中间,y 轴点40的位置 高度刚好占 y 轴 20个单位的长度 宽度刚好是 10 个柱子宽度总和 知道了原理,那么需求就非常容易了: 看看效果: 非常好,为泡泡图加上数据标签,原理与之前一样

89230

盘点10款超好用的数据可视化工具

Tableau不仅可以制作图表、图形还可以绘制地图,用户可以直接将数据拖拽到系统中,不仅支持个人访问,还可以进行团队协作同步完成数据图表绘制。...创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。...4、D3.js D3(Data Driven Documents)是支持SVG渲染的另一种JavaScript库。...开发者刚开始学习D3.js时会感到很复杂,但是D3.js功能强大,非常灵活,值得开发者深入学习研究。...它可以使数据集载入、复制、粘贴、拖拽、删除与一体,并且允许我们定制化视图和层次。 Raw基于非常流行的D3.js库开发,支持很多图表类型,例如泡泡图、映射图、环图等。

6.6K11
领券