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

D3 可以加载的数据格式有哪些?(12种)

D3.js 支持多种数据格式,这些格式涵盖了从简单的表格数据到复杂的地理数据。以下是一些常见的数据格式及其加载方法:
在这里插入图片描述

D3.js 数据加载方法

  1. d3.blob(input, init)

    • 用途: 加载二进制数据,返回一个 Blob 对象。
    • 参数:
      • input: 数据源 URL。
      • init: 可选的初始化对象,用于设置请求头等。
    • 返回: 返回一个 Promise,解析为 Blob 对象。
    • 示例:
      d3.blob("data.bin").then(blob => {
        console.log(blob);
      }).catch(error => {
        console.error("Error loading blob:", error);
      });
      
  2. d3.buffer(input, init)

    • 用途: 加载二进制数据,返回一个 ArrayBuffer 对象。
    • 参数:
      • input: 数据源 URL。
      • init: 可选的初始化对象,用于设置请求头等。
    • 返回: 返回一个 Promise,解析为 ArrayBuffer 对象。
    • 示例:
      d3.buffer("data.bin").then(buffer => {
        console.log(buffer);
      }).catch(error => {
        console.error("Error loading buffer:", error);
      });
      
  3. d3.csv(input, init, row)

    • 用途: 加载 CSV 格式的数据。
    • 参数:
      • input: 数据源 URL。
      • init: 可选的初始化对象,用于设置请求头等。
      • row: 可选的行处理函数,用于解析每一行数据。
    • 返回: 返回一个 Promise,解析为数组对象。
    • 示例:
      d3.csv("data.csv", row => {
        return {
          id: +row.id,
          value: +row.value
        };
      }).then(data => {
        console.log(data);
      }).catch(error => {
        console.error("Error loading CSV:", error);
      });
      
  4. d3.dsv(delimiter, input, init, row)

    • 用途: 加载自定义分隔符的 CSV 格式数据。
    • 参数:
      • delimiter: 分隔符字符串。
      • input: 数据源 URL。
      • init: 可选的初始化对象,用于设置请求头等。
      • row: 可选的行处理函数,用于解析每一行数据。
    • 返回: 返回一个 Promise,解析为数组对象。
    • 示例:
      const parser = d3.dsvFormat("|");
      d3.dsv("|", "data.dsv", row => {
        return {
          id: +row.id,
          value: +row.value
        };
      }).then(data => {
        console.log(data);
      }).catch(error => {
        console.error("Error loading DSV:", error);
      });
      
  5. d3.html(input, init)

    • 用途: 加载 HTML 文档。
    • 参数:
      • input: 数据源 URL。
      • init: 可选的初始化对象,用于设置请求头等。
    • 返回: 返回一个 Promise,解析为 DocumentFragment 对象。
    • 示例:
      d3.html("data.html").then(doc => {
        console.log(doc);
      }).catch(error => {
        console.error("Error loading HTML:", error);
      });
      
  6. d3.image(input, init)

    • 用途: 加载图像文件。
    • 参数:
      • input: 数据源 URL。
      • init: 可选的初始化对象,用于设置请求头等。
    • 返回: 返回一个 Promise,解析为 Image 对象。
    • 示例:
      d3.image("data.png").then(image => {
        console.log(image);
      }).catch(error => {
        console.error("Error loading image:", error);
      });
      
  7. d3.json(input, init)

    • 用途: 加载 JSON 格式的数据。
    • 参数:
      • input: 数据源 URL。
      • init: 可选的初始化对象,用于设置请求头等。
    • 返回: 返回一个 Promise,解析为 JSON 对象。
    • 示例:
      d3.json("data.json").then(data => {
        console.log(data);
      }).catch(error => {
        console.error("Error loading JSON:", error);
      });
      
  8. d3.svg(input, init)

    • 用途: 加载 SVG 文件。
    • 参数:
      • input: 数据源 URL。
      • init: 可选的初始化对象,用于设置请求头等。
    • 返回: 返回一个 Promise,解析为 DocumentFragment 对象。
    • 示例:
      d3.svg("data.svg").then(svg => {
        console.log(svg);
      }).catch(error => {
        console.error("Error loading SVG:", error);
      });
      
  9. d3.text(input, init)

    • 用途: 加载纯文本文件。
    • 参数:
      • input: 数据源 URL。
      • init: 可选的初始化对象,用于设置请求头等。
    • 返回: 返回一个 Promise,解析为字符串。
    • 示例:
      d3.text("data.txt").then(text => {
        console.log(text);
      }).catch(error => {
        console.error("Error loading text:", error);
      });
      
  10. d3.tsv(input, init, row)

    • 用途: 加载 TSV 格式的数据。
    • 参数:
      • input: 数据源 URL。
      • init: 可选的初始化对象,用于设置请求头等。
      • row: 可选的行处理函数,用于解析每一行数据。
    • 返回: 返回一个 Promise,解析为数组对象。
    • 示例:
      d3.tsv("data.tsv", row => {
        return {
          id: +row.id,
          value: +row.value
        };
      }).then(data => {
        console.log(data);
      }).catch(error => {
        console.error("Error loading TSV:", error);
      });
      
  11. d3.xml(input, init)

    • 用途: 加载 XML 文件。
    • 参数:
      • input: 数据源 URL。
      • init: 可选的初始化对象,用于设置请求头等。
    • 返回: 返回一个 Promise,解析为 Document 对象。
    • 示例:
      d3.xml("data.xml").then(xml => {
        console.log(xml);
      }).catch(error => {
        console.error("Error loading XML:", error);
      });
      

12. Custom Formats (自定义格式)

  • 用途: 如果你需要处理特殊格式的数据,可以使用 d3.dsvd3.text 并自定义解析逻辑。
  • 加载方法:
    d3.text("data.custom").then(data => {
      const parsedData = parseCustomData(data); // 自定义解析函数
      console.log(parsedData);
    }).catch(error => {
      console.error("Error loading custom format:", error);
    });
    
    function parseCustomData(data) {
      // 自定义解析逻辑
      return data.split("\n").map(line => line.split(","));
    }
    

总结

D3.js 支持多种数据格式,包括 JSON、CSV、TSV、XML、HTML、GeoJSON、TopoJSON、纯文本文件、二进制文件和自定义格式。通过使用 D3.js 提供的加载方法,可以轻松地将这些数据加载到你的应用程序中,并进行进一步的处理和可视化。希望这些示例能帮助你更好地理解和使用 D3.js 进行数据加载。


http://www.kler.cn/a/396634.html

相关文章:

  • [GXYCTF2019]BabyUpload--详细解析
  • K8S 查看pod节点的磁盘和内存使用情况
  • css:浮动
  • opencv kdtree pcl kdtree 效率对比
  • 精华帖分享|浅谈金融时间序列分析与股价随机游走
  • java:接口,抽象,多态的综合小练习
  • RabbitMQ介绍和快速上手案例
  • 深入解析 OpenHarmony 构建系统-3-GN 构建系统管理脚本
  • 我要成为算法高手-二分查找篇
  • 【大数据学习 | HBASE高级】hbase的API操作
  • C# 中Math.Round 和 SQL Server中decimal(18,2) 不想等的问题
  • 大数据实训室建设的必要性
  • asp应用-Access|IIS|
  • [含文档+PPT+源码等]精品大数据项目-python基于Spark实现的新闻推荐系统的设计与实现
  • Rust学习(五):泛型、trait
  • 网络游戏安全现状及相关应对方案
  • ODX架构开发流程
  • fpga 同步fifo
  • 算法---解决“汉诺塔”问题
  • Java面试之多线程并发篇(4)
  • 学习日记_20241115_聚类方法(层次聚类)
  • 1+X应急响应(网络)系统备份:
  • 11.13机器学习_线性回归
  • 搭建Spring gateway网关微服务
  • DApp开发:定制化解决方案与源码部署的一站式指南
  • 动态规划与贪心算法:核心区别与实例分析