使用数组绘制 D3 简单折线图

2024-02-12

我正在尝试实现这段代码:http://bl.ocks.org/3883245 http://bl.ocks.org/3883245,但我不是加载 TSV 文件,而是从数组加载数据。 数组如下所示:

[["2012-10-02",2],["2012-10-09", 2], ["2012-10-12", 2]]

然后我应用这个函数来获取 CSV 格式:var data = d3.csv.format(BigWordsDates2[ArrayIndex]);

但仍然没有任何显示。

这是完整的代码:我想我离得到它并不远,但我已经研究了 3 天,但仍然无法让它工作:

var margin = {top: 20, right: 20, bottom: 30, left: 50},
        width = 80 - margin.left - margin.right,
        height = 80 - margin.top - margin.bottom;

        var data = d3.csv.format(BigWordsDates2[ArrayIndex]);

        var parseDate = d3.time.format("%Y-%b-%d").parse;

        var x = d3.time.scale()
            .range([0, width]);

        var y = d3.scale.linear()
            .range([height, 0]);

        var xAxis = d3.svg.axis()
            .scale(x)
            .orient("bottom");

        var yAxis = d3.svg.axis()
            .scale(y)
            .orient("left");

        var line = d3.svg.line()
            .x(function(d) { return x(d.date); })
            .y(function(d) { return y(d.close); });

        var svg = d3.select("#Graph").append("svg")
            .attr("width", width + margin.left + margin.right)
            .attr("height", height + margin.top + margin.bottom)
          .append("g")
            .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

        d3.csv.parseRows(data, function(data) {
          data.forEach(function(d) {
            d.date = parseDate(d.date);
            d.close = parseInt(d.close);
          });

         x.domain(d3.extent(data, function(d) { return d.date; }));
         y.domain(d3.extent(data, function(d) { return d.close; }));

          svg.append("g")
              .attr("class", "x axis")
              .attr("transform", "translate(0," + height + ")")
              .call(xAxis);

          svg.append("g")
              .attr("class", "y axis")
              .call(yAxis)
            .append("text")
              .attr("transform", "rotate(-90)")
              .attr("y", 6)
              .attr("dy", ".71em")
              .style("text-anchor", "end")
              .text("Price ($)");

          svg.append("path")
              .datum(data)
              .attr("class", "line")
              .attr("d", line);
        });`

我想我也对 d.date 和 d.close 做错了什么,但我也无法弄清楚。


该图表使用以下格式的数据

[{ date: '...', close: '...'},
 { date: '...', close: '...'}]

所以,你需要解析你的数组:

// fix your data parser
var parseDate = d3.time.format("%Y-%m-%d").parse;

var arrData = [
  ["2012-10-02",200],
  ["2012-10-09", 300], 
  ["2012-10-12", 150]];

// create a new array that follows the format
var data = arrData.map(function(d) {
    return {
      date: parseDate(d[0]),
      close: d[1]
    };
});

这是工作版本:http://jsfiddle.net/jaimem/T546B/ http://jsfiddle.net/jaimem/T546B/

pd:根据您可能需要修改的数据y尺度域。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用数组绘制 D3 简单折线图 的相关文章

随机推荐

  • 为什么不能获取 nullptr 的地址?

    在C 11标准中 我不明白为什么要取地址nullptr是不允许的 而一个is允许使用自己的地址std nullptr t实例 除了这个事实之外nullptr是一个保留关键字 这个决定有什么指定的理由吗 只是因为它让我感到有趣 我尝试使用以下
  • 使用 PRAW 在 Python 中从 Reddit API 解码 JSON

    我在 Python GTK 应用程序中使用 PRAW for Reddit API 我已经成功地使用了 API 但我似乎无法解码 JSON 以供使用 应该知道 我是Python和GTK应用程序的初学者 Mode Python coding
  • 网格中最大的产品

    我被这个问题困扰了 我确实认为我已经找到了正确的解决方案 但是当将其提交到网站时 它不接受 我尝试通过打印所有可能的组合来调试它 它们都完成了 水平 垂直和对角线 数组也被正确填充 我后来打印出来检查了一下 你知道问题可能出在哪里吗 Que
  • 安装aws-sdk后出错

    我正在尝试让回形针与 S3 一起使用 但我的视图抛出错误 cannot load such file aws sdk You may need to install the aws sdk gem 我的 Rails 配置如下 Gemfile
  • (MVC 3 Razor) - 循环遍历 3 列 div 的更简单方法

    目前我在 CSHTML 中使用以下代码 int i 0 foreach var item in Model Traders if i 3 0 if i 1 div class row div class four column div cl
  • 获取 Firefox SDK main.js 中某个文件的内容

    所以我正在开发一个 Firefox 插件 它可以向任何网页的 DOM 添加一些 HTML 这里的想法是我使用一个名为template html作为模板 位于dataaddon 文件夹内的文件夹 接下来 我想使用该内容template htm
  • 如何像Notes App一样设置UITextView内容插入

    我正在开发一个应用程序 我需要在 iPhone 中提供类似 Notes App 的功能 如第一个屏幕截图所示 最初 笔记在内容开始之前留下一个选项卡 我也想做同样的事情 当我设置时左侧内容插图 UITextView 到 25 时 它显示如屏
  • 是否可以使“type”的输出返回不同的类?

    所以免责声明 这个问题 https stackoverflow com questions 56879033 how do i override type method in python object noredirect 1 comme
  • Python/Tkinter:Tkinter StringVar(IntVar 等)线程安全吗?

    Tkinter StringVar IntVar FloatVar 等 线程安全吗 后台线程可以读取或写入这些对象吗 或者我必须使用队列在后台线程和主 Tkinter GUI 线程之间传递信息 并让我的主 Tkinter 线程弹出队列并相应
  • .NET 桌面应用程序的最佳崩溃报告框架? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有几个简单的 Windows 窗体应用程序 我想向其中添加崩溃报告 可以为我提供有关用户计算机 当然
  • Serilog不将日志输出到txt文件中

    我使用 dotnet 工作服务 net 5 我集成了 Serilog 以及浓缩器和接收器 但由于某种原因 我在文件日志中看不到任何输出 这是我的 appsettings json ConnectionStrings DefaultConne
  • 使用数组和对象将多个值插入到雪花表中

    我试图使用数组和结构插入多行 通过 SQL 语句转换为 Snowflake 要将值数组插入到列中 我正在使用ARRAY CONSTUCT函数并插入我正在使用的结构 字典 对象OBJECT CONSTRUCT功能 E g insert int
  • 新版本上传到 iTunes Connect 后消失

    我正在尝试使用 Xcode 8 将构建版本上传到 iTunesConnect Xcode 显示上传成功 在 iTunesConnect 的 活动 选项卡中 我看到我的构建出现了 并且被标记为 正在处理 但几分钟后 这个构建就消失了 我在任何
  • 对 CountedCompleter 的文档和来源感到困惑

    这是一个代码片段java util concurrent CountedCompleter类 JDK 1 8 0 25 If the pending count is nonzero decrements the count otherwi
  • 使用 JodaTime 自动将秒转换为年/日/小时/分钟?

    当 x 超过 3600 秒时 有没有办法将 x 秒转换为 y 小时和 z 秒 同样 当x超过60但小于3600秒时 使用JodaTime 将其转换为 a分b秒 我知道我必须在 periodFormatter 中指定我需要的内容 但我不想指定
  • 传递常量矩阵

    参考this https stackoverflow com questions 546860 passing arrays and matrices to functions as pointers and pointers to poi
  • 对象内部字段的 Arangodb AQL 更新

    给出以下集合文档示例 timestamp 1413543986 message message readed 8 null 9 null 22 null type 1014574149174 如何使用键 readed 更新对象中特定键的值
  • 我可以使用 groovy 的默认 getter/setter 来帮助实现 java 接口吗?

    我正在从导入的库扩展一个非常简单的 Java 接口 该接口非常简单 它声明的唯一方法是属性列表的 getter 和 setter 我的应用程序是用 Groovy 编写的 因此我想使用 Groovy 类来实现这个 Java 接口 我的印象是
  • CryptoAPI 返回 HMAC_SHA1 的错误结果

    我将下面的代码与 Crypto API 一起使用 但根据其他 API 和库的测试 我没有得到预期的结果 我正在使用钥匙 key 数据是 message 例如 使用 Indy 的 TidHMACSHA1 我得到 2088df74d5f2146
  • 使用数组绘制 D3 简单折线图

    我正在尝试实现这段代码 http bl ocks org 3883245 http bl ocks org 3883245 但我不是加载 TSV 文件 而是从数组加载数据 数组如下所示 2012 10 02 2 2012 10 09 2 2