d3.js - 通过下拉框指定用于某些可视化的 json 文件

标签 d3.js

我最近开始尝试使用 d3.js 进行可视化。我在 JS 或 Web 脚本方面没有太多背景,所以很抱歉,如果我问的是一件简单的事情。

具体的例子并不重要。我正在制作一个图表,例如 this

我希望页面上有一个下拉菜单,列出不同的数据源。然后,用户可以选择数据源,图表就会更新。

我使用示例 here 创建了一个下拉菜单。但是,我不确定如何获取该值,因为我需要该行

d3.json("miserables.json", function(json) {

使用新名称进行更新。

最佳答案

你的 html 文件应该是这样的......

<select id="json_sources" name="json_sources">
    <option value ="source1.json" selected>Source 1</option>
    <option value ="source2.json">Source 2</option>
    <option value ="source3.json">Source 3</option>
</select>​

然后,为 select 元素上的 change 事件添加一个事件监听器(d3.js 中的 .on):

var dropdown = d3.select("#json_sources")
var change = function() {
  var source = dropdown.node().options[dropdown.node().selectedIndex].value;
  d3.json(source, function(json) {
     //continue doing stuff here.
  })
}

dropdown.on("change", change)
change(); //trigger json on load

关于d3.js - 通过下拉框指定用于某些可视化的 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11157806/

相关文章:

javascript - D3.js 转换多行 - 数据不更新

python - 如何使用 d3 样式图表在网页上显示 Pandas 数据?

javascript - D3 气泡图 - 'cannot read property ' map' of undefined'

json - Sankey图过渡

javascript - 使用 d3 可视化传单上的点

javascript - 取消 D3 中元素的分组

d3.js - D3 力布局图,节点位于网格中

javascript - 将 javascript (d3.js) 绑定(bind)到 shiny

javascript - 没有数据时 SVG 路径中有间隙

d3.js - 如何在 d3 工具的强制布局中可视化 mysql 数据库中的数据