Javascript 如何通过输入框获取值来动态添加行

Javascript 如何通过输入框获取值来动态添加行,javascript,d3.js,svg,scatter-plot,Javascript,D3.js,Svg,Scatter Plot,我已经使用d3.js版本3创建了散点图。我想创建一个输入框,无论我在其中传递什么值,它都应该根据该值改变水平线的位置 var yScale = d3.scale.linear() .range([0 + margin.top, height - margin.bottom]) .domain([0, 100]); var lineChartY = yScale(100 - 60); var x = d3.scale.linear() .range([0, width]); va

我已经使用d3.js版本3创建了散点图。我想创建一个输入框,无论我在其中传递什么值,它都应该根据该值改变水平线的位置

var yScale = d3.scale.linear()
  .range([0 + margin.top, height - margin.bottom])
  .domain([0, 100]);
var lineChartY = yScale(100 - 60);


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

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

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

var color = d3.scale.category10();

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

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

var y1Axis = d3.svg.axis()
  .scale(y1)
  .orient("right");

var svg = d3.select("body").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.tsv("data.tsv", function(error, data) {
  if (error) throw error;

  data.forEach(function(d) {

    d.WTP = +d.WTP;
  });

  svg.append('line')
    .style('stroke', 'black')
    .style('stroke-width', '2px')
    .attr('x1', 40)
    .attr('y1', lineChartY)
    .attr('x2', 880)
    .attr('y2', lineChartY)
    .attr("transform", "translate(-40,0)")

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

});

我的工作链接。

您正在使用的数据集存储在服务器上。有两种方法可以解决这个问题:

  • 添加后端代码-创建一个表单,该表单提交到某种后端(php、perl、NodeJS)并处理文件,然后重新加载页面

  • 将数据集格式化为javascript数组。这可能是最简单的方法,但是,一旦重新加载页面,就不会保存任何数据

  • 我可以想到其他一些方法,但是,它们都需要相当程度的工作。如果是个人项目,我可能会创建自己的脚本来处理数据文件。如果它将被其他人使用,我会建议重新设计某种类型


    我可能会将数据放入(插入您选择的数据库)并以这种方式操作数据集。考虑项目的范围和访问它的人。 您正在使用的数据集存储在服务器上。有两种方法可以解决这个问题:

  • 添加后端代码-创建一个表单,该表单提交到某种后端(php、perl、NodeJS)并处理文件,然后重新加载页面

  • 将数据集格式化为javascript数组。这可能是最简单的方法,但是,一旦重新加载页面,就不会保存任何数据

  • 我可以想到其他一些方法,但是,它们都需要相当程度的工作。如果是个人项目,我可能会创建自己的脚本来处理数据文件。如果它将被其他人使用,我会建议重新设计某种类型

    我可能会将数据放入(插入您选择的数据库)并以这种方式操作数据集。考虑项目的范围和访问它的人。