常见的图形库概览-03-D3.js 入门例子

ops/2025/1/24 2:59:47/

常见的图形库系列

常见的图形库概览-00-overview

常见的图形库概览-01-Chart.js 入门例子

常见的图形库概览-03-D3.js 入门例子

HighCharts 交互式图表-01-入门介绍

Plotly 函数图像绘制

ApexCharts 图表入门例子

Victory 图表基于 React,适合 React 项目,支持移动端

Recharts 入门例子

AntV G2 入门例子

图表库 C3.js 入门例子

图表库 Google Charts 入门例子

ECharts-01-图表库系列

入门例子

以下是一个简单的 D3.js 入门示例,展示如何使用 D3.js 创建一个基本的柱状图(Bar Chart)。D3.js 是一个功能强大且灵活的库,适合创建高度定制化的数据可视化。

代码

普通的例子:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>D3.js 入门示例</title><script src="https://d3js.org/d3.v7.min.js"></script>
</head>
<body><div id="chart"></div><script>// 数据const data = [30, 86, 168, 281, 303, 365];// 设置图表的宽度和高度const width = 500;const height = 300;const margin = { top: 20, right: 30, bottom: 30, left: 40 };// 创建 SVG 画布const svg = d3.select("#chart").append("svg").attr("width", width).attr("height", height);// 创建比例尺const x = d3.scaleBand().domain(d3.range(data.length)) // X 轴范围.range([margin.left, width - margin.right]) // X 轴宽度.padding(0.1); // 柱子之间的间距const y = d3.scaleLinear().domain([0, d3.max(data)]) // Y 轴范围.range([height - margin.bottom, margin.top]); // Y 轴高度// 添加柱子svg.selectAll("rect").data(data).join("rect").attr("x", (d, i) => x(i)) // X 轴位置.attr("y", d => y(d)) // Y 轴位置.attr("width", x.bandwidth()) // 柱子宽度.attr("height", d => height - margin.bottom - y(d)) // 柱子高度.attr("fill", "steelblue"); // 柱子颜色// 添加 X 轴svg.append("g").attr("transform", `translate(0,${height - margin.bottom})`).call(d3.axisBottom(x).tickFormat(i => i + 1));// 添加 Y 轴svg.append("g").attr("transform", `translate(${margin.left},0)`).call(d3.axisLeft(y));</script>
</body>
</html>

关键点说明

  • d3.scaleBand():用于创建 X 轴的比例尺,适合离散数据(如柱状图)。

  • d3.scaleLinear():用于创建 Y 轴的比例尺,适合连续数据。

  • d3.axisBottom()d3.axisLeft():分别用于创建 X 轴和 Y 轴。

  • d3.select():选择 DOM 元素,类似于 jQuery 的选择器。

  • data().join():将数据绑定到 DOM 元素,并处理数据的增删改。


http://www.ppmy.cn/ops/152632.html

相关文章

Excel 技巧17 - 如何计算倒计时,并添加该倒计时的数据条(★)

本文讲如何计算倒计时&#xff0c;并添加该倒计时的数据条。 1&#xff0c;如何计算倒计时 这里也要用公式 D3 - TODAY() 显示为下面这个样子的 然后右键该单元格&#xff0c;选 设置单元格格式 然后点 常规 这样就能显示出还书倒计时的日数了。 下拉适用到其他单元格。 2&a…

网站HTTP改成HTTPS

您不仅需要知道如何将HTTP转换为HTTPS&#xff0c;还必须在不妨碍您的网站自成立以来建立的任何搜索排名权限的情况下进行切换。 为什么应该从HTTP转换为HTTPS&#xff1f; 与非安全HTTP于不同&#xff0c;安全域使用SSL&#xff08;安全套接字层&#xff09;服务器上的加密代…

浅谈云计算21 | Docker容器技术

Docker容器技术 一、 容器技术特性1.1 轻量级特性1.2 隔离性特性 二、容器镜像2.1 容器镜像概述2.1.1 定义与构成2.1.2 分层结构 2.2 联合文件系统2.3 容器镜像的构建与管理2.3.1 容器镜像的构建2.3.2 **构建镜像流程**2.3.3 **应用场景**2.3.4 镜像仓库的应用 2.4 容器镜像的优…

Redis高阶2-BigKey

Redis进阶-BigKey MoreKey 大批量往redis里面插入2000W测试数据key LinuxBash下面执行&#xff0c;插入100w数据脚本 # 生成100W条redis批量设置kv的语句(keykn,valuevn)写入到/tmp目录下的redisTest.txt文件中for((i1;i<100*10000;i)); do echo "set k$i v$i"…

【二叉树的深搜】计算布尔二叉树的值 求根节点到叶节点数字之和

文章目录 2331. 计算布尔二叉树的值解题思路&#xff1a;后序遍历129. 求根节点到叶节点数字之和解题思路&#xff1a;深度优先搜索 前序遍历 2331. 计算布尔二叉树的值 2331. 计算布尔二叉树的值 给你一棵 完整二叉树 的根&#xff0c;这棵树有以下特征&#xff1a; 叶子节…

深度解析:CentOS 系统的硬件资源优化技巧

深度解析:CentOS 系统的硬件资源优化技巧 在运维的世界中,硬件资源的高效利用是保障系统性能和稳定性的关键。尤其是在使用CentOS这样的服务器操作系统时,优化硬件资源不仅能提升系统响应速度,还能显著降低运营成本。今天,我将结合实际经验,详细介绍如何在CentOS系统中进…

计算机网络 (49)网络安全问题概述

前言 计算机网络安全问题是一个复杂且多维的领域&#xff0c;它涉及到网络系统的硬件、软件以及数据的安全保护&#xff0c;确保这些元素不因偶然的或恶意的原因而遭到破坏、更改或泄露。 一、计算机网络安全的定义 计算机网络安全是指利用网络管理控制和技术措施&#xff0c;保…

Spark SQL中的from_json函数详解

Spark SQL中的from_json函数详解 在Spark SQL中&#xff0c;from_json是一个用于解析JSON数据的函数&#xff0c;主要用于将JSON格式的字符串解析为结构化的数据&#xff08;即StructType或其他Spark SQL数据类型&#xff09;。这个函数在处理半结构化数据&#xff08;如JSON日…