添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
面冷心慈的开心果  ·  JAVA ...·  10 月前    · 
心软的蘑菇  ·  vue3 vite2 封装 SVG ...·  1 年前    · 

d3-tip是D3可视化工具中的一种,可用于生成自定义文本提示框。如下图所示,当鼠标悬浮在小矩形上方时,会出现提示框。
d3-tip介绍

d3-tip实现步骤

先附上一篇文章,之后进行分析。
使用d3-tip将文本提示框添加到d3柱形图:
http://bl.ocks.org/Caged/6476579

1、添加使用的JavaScript函数库

<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://labratrevenge.com/d3-tip/javascripts/d3.tip.v0.6.3.js"></script>

2、为柱形图创建tip

var tip = d3.tip()
	//类名可以自己设置;假如另有一个矩阵图,也需要添加d3-tip,则应创建2个tip,类名可分别设置为d3-tip_bar,d3-tip_matrix,方便分别控制。
	.attr('class', 'd3-tip')
	.offset([-10, 0])
	.html(function(d) {
	//d是数据集中的一条数据,它和一个矩形条绑定在一起。
	return "<strong>Frequency:</strong> <span style='color:red'>" + d.frequency + "</span>";
//其中html属性也可另行单独定义
tip.html(function (d) {
	let html_str = <strong>Frequency:</strong> <span style='color:red'>" + d.frequency + "</span>";
	return html_str;

3、调用tip

var svg = d3.select("body").append("svg");
svg.call(tip);	//调用指定函数一次,传入参数返回svg,相当于手动调用函数

4、确定数据集

可以是自己定义的数组,也可以是下面函数生成的my_data对象

d3.tsv("filename.tsv", type, function(error, my_data){})
//其中type函数内容为
function type(d) {
	d.frequency = +d.frequency;
	return d;

5、添加触发动作事件

selection.	
	.data(my_data)	//必须绑定数据集
	.on('mouseover', tip.show)
	.on('mouseout', tip.hide)

如果事件程序不仅有tip.show,则需要用function(d,i){},此时要注意改变this值。
参考链接:
https://www.cnblogs.com/sgqwjr/p/10314770.html

6、click和mouseout触发动作事件冲突_解决方法

我在开发中需要为矩形条添加click动作事件,用于改变数据集内容,然后重新绘制图表。
但点击矩形条后移开光标,mouseout事件被执行,d3-tip却不会消失。
找到的解决方法为移开光标时,删除所有的文本提示框;这样处理后不是mouseover而是click矩形条时,可以看到提示框,mouseout时,提示框消失。
代码如下:

selection.	
	.data(my_data)
	.on('mouseover', tip.show)
	.on('mouseout', function(){
		//光标移动时,移除所有的文本提示框
		$("div.d3-tip").remove();
	.on("click", function (d,i) {})
                    目录d3-tip介绍d3-tip实现步骤1、添加使用的JavaScript函数库2、为柱形图创建tip3、调用tip4、确定数据集5、添加触发动作事件6、click和mouseout触发动作事件冲突_解决方法d3-tip介绍d3-tip是D3可视化工具中的一种,可用于生成自定义文本提示框。如下图所示,当鼠标悬浮在小矩形上方时,会出现提示框。d3-tip实现步骤先附上一篇文章,之后进行分析。使用d3-tip将文本提示框添加到d3柱形图:http://bl.ocks.org/Caged/647657
				
博客地址:https://blog.csdn.net/tiandao451/article/details/109708427 由于发现在我的博客通过点击GitHub链接,会跳转到别人盗用的下载地址,而且还是VIP收费,所以自己把代码上传CSDN资源上。 【因为缺分,所以收5个积分,免费可以到Github上下载最新的代码】
#How 在 D3.js 中创建工具提示名称: Maria Cristina Di Termine类别: D3.js 框架 日期: 2015 年 5 月 工具提示是当鼠标悬停在视图的特定元素上时会出现的一条信息。 有些人用不同的名称来称呼它,例如“悬停框”、“信息提示”或“提示”,但可以肯定的是,它是显示信息的有用工具,也可以成为我们项目的时尚元素。 我想向您展示我如何在 D3.js 项目中制作工具提示。 首先,我创建了一个关于一个简单参数的通用条形图:巧克力。 我有两个值:牛奶的百分比(Y)和可可的百分比(X)。 在我的图表最后,我会得到 4 种不同口味的巧克力棒! 我需要做的是使用名称指定哪种巧克力棒,例如“lightchoco”、“milkchoco”等。我将在我的工具提示中显示这些巧克力名称,可能还会使用额外的图片。 ##工具提示 现在我们有了条形图,我们可以创建工具提示。 为此
一般来说,图表中不宜存在过多文字。但是,有时需要一些文字来描述某些图形元素。那么,可以实现一种交互:当用户鼠标滑到某图形元素时,出现一个提示框,里面写有描述文字。这是一种简单、普遍的交互式,几乎适用于所有图表。通过可给提示框定制外观,能给用户带来很好的体验。 1. 提示框的制作思路 提示框,就是“文字”加“边框”。显示文字,一般来说用 SVG 的<text>,但是,有两个问题: 如果字符串过长,&l...
从现在开始,每个事件处理程序都将接收事件作为第一个参数 位于此存储库下的 d3-tip 版本已适应此更改。 它还修复了一个恼人的错误,当多个 DOM 提示实例被创建时,这最终会导致意外和不良结果。 请参阅,但请注意tip.html API 中的更改。 简短的故事是,您将在tip.html()中以相同的顺序获得与tip.show()接收相同的参数。 如果你使用 npm npm i d3-v6-tip 然后在您的应用程序中像这样使用它 import { tip as d3tip } from "d3-v6-tip" ; const tip = d3tip ( ) 否则,您可以 需要用到投影函数,并挂在在路径生成器上。 由于同源策略限制的原因,需要通过服务器来返回地图文件,比如china.json这种。 如果需要做渐变色渲染或者显示标注,需要额外的数据,并通过服务器返回。 要区分开topojson和geojson两种格式的数据的不同,他们的加载模式也有所不同,相对于geojson数据,topojson文件更... <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> String path = request.getContextPath(); String basePath ...
D3.js 是一个基于数据操作文档JavaScript库。D3帮助你给数据带来活力通过使用HTML、SVG和CSS。D3重视Web标准为你提供现代浏览器的全部功能,而不是给你一个专有的框架。结合强大的可视化组件和数据驱动方式Dom操作。以下收集了1800+的 D3.js 示例。  113th U.S. Congressional Districts20 years of the en
D3.js 是一个用于可视化数据的 JavaScript 库。它可以通过使用 SVG、HTML 和 CSS 来创建交互式图表。 要使用 D3.js 实现冒泡排序算法的可视化,需要以下步骤: 1. 准备数据:可以使用 D3.jsd3.range() 函数生成一组随机数据。 2. 创建画布:使用 D3.js 的选择器选择页面上的元素,并使用 append() 函数在其中插入一个 SVG 画布。 3. 绘制数据:使用 D3.js 的数据绑定和 enter() 函数将数据绑定到画布上的元素上,并使用 attr() 函数设置元素的属性。 4. 实现冒泡排序算法:使用 D3.js 的 transition() 函数设置元素的过渡效果,在每次交换位置时使用 delay() 函数设置延迟,以便观察冒泡排序的过程。 5. 添加交互:使用 D3.js事件监听器实现点击按钮时开始排序的功能。 以下是一个简单的 D3.js 代码示例,实现了冒泡排序算法的可视化: <!DOCTYPE html> <meta charset="utf-8"> <title>D3.js 冒泡排序可视化</title> <style> .bar { width: 20px; height: 100px; display: inline-block; background-color: steelblue; margin-right: 2px;
d3.csv()读取本地文件失败_报错Access to XMLHttpRequest at ‘file:‘ from origin ‘null‘ has been blocked_替换和解决方法