Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript gY=svg.append(“g”) .attr(“类”、“y轴”); 函数更新数据{ var s=document.getElementById; var fileName=s.value; d3.csv(文件名、类型、函数(错误、数据){ 如果(错误)_Javascript_Jquery_Html_D3.js_Drop Down Menu - Fatal编程技术网

Javascript gY=svg.append(“g”) .attr(“类”、“y轴”); 函数更新数据{ var s=document.getElementById; var fileName=s.value; d3.csv(文件名、类型、函数(错误、数据){ 如果(错误)

Javascript gY=svg.append(“g”) .attr(“类”、“y轴”); 函数更新数据{ var s=document.getElementById; var fileName=s.value; d3.csv(文件名、类型、函数(错误、数据){ 如果(错误),javascript,jquery,html,d3.js,drop-down-menu,Javascript,Jquery,Html,D3.js,Drop Down Menu,gY=svg.append(“g”) .attr(“类”、“y轴”); 函数更新数据{ var s=document.getElementById; var fileName=s.value; d3.csv(文件名、类型、函数(错误、数据){ 如果(错误)抛出错误; x、 域(data.map(函数(d){返回d.Letter;})); y、 域([(d3.min(数据,函数(d){return d.Value1;})-50),d3.max(数据,函数(d){return d.Value1;})

gY=svg.append(“g”) .attr(“类”、“y轴”); 函数更新数据{ var s=document.getElementById; var fileName=s.value; d3.csv(文件名、类型、函数(错误、数据){ 如果(错误)抛出错误; x、 域(data.map(函数(d){返回d.Letter;})); y、 域([(d3.min(数据,函数(d){return d.Value1;})-50),d3.max(数据,函数(d){return d.Value1;})]; gX.call(xAxis) .selectAll(“文本”) .style(“文本锚定”、“结束”) .attr(“dx”,“-.8em”) .attr(“dy”,“.15em”) .attr(“变换”、“旋转(-15)”); gY.呼叫(yAxis) //只添加一次标题 .selectAll(“.title”) .数据([“值1”]) .enter().append(“文本”).attr(“类”、“标题”) .attr(“变换”、“旋转(-90)”) .attr(“y”,6) .attr(“dy”,“.71em”) .style(“文本锚定”、“结束”) .文本(功能(d){ 返回d }); //一般更新模式 //更新 var bar=svg.selectAll(“.bar”) .数据(数据); //进入 bar.enter().insert(“rect”、“.axis”) .attr(“类别”、“酒吧”); //UPDATE+ENTER(调用ENTER()将ENTER合并到UPDATE中) attr(“x”,函数(d){return x(d.Letter);}) .attr(“宽度”,x.rangeBand()) .attr(“y”,函数(d){返回y(d.Value1);}) .attr(“高度”,函数(d){返回高度-y(d.Value1);}); //出口 bar.exit().remove(); }); 功能类型(d){ d、 Value1=+d.Value1; 返回d; } }
感谢您强调我的错误并给出了精彩的回答。我同意使用通用更新模式更好+我删除了我的答案。对你很好@hhsadiq。这些东西有时会让人困惑,但关键是要记住,d3完全是数据驱动的,是声明性的,几乎从来都不是强制性的。
Letter,Value1,Value2
I,9968,8863
F,9938,9204
E,9875,8578
D,9859,9074
G,9856,9432
J,9778,9095
A,9729,8747
C,9695,8610
H,9609,8969
B,9508,9395
Letter,Value1,Value2
I,1510,1495
E,1521,1312
C,1624,1370
H,1669,1031
A,1685,1256
D,1773,1178
J,1910,1129
B,1981,1331
F,1982,1032
G,1986,1463
Letter,Value1,Value2
B,9516,9421
I,9537,9140
C,9772,9070
F,9527,9060
H,9747,8959
E,9992,8948
J,9576,8770
D,9748,8735
G,9963,8680
A,9557,8628
Letter,Value1,Value2
I,1708,1016
H,1604,1096
G,1689,1106
D,1657,1115
F,1709,1131
C,1588,1221
A,1939,1309
J,1600,1332
B,1815,1344
E,1651,1478
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<style>

.bar {
  fill: steelblue;
}

.bar:hover {
  fill: brown;
}

.axis {
  font: 10px sans-serif;
}

.axis path,
.axis line {
  fill: none;
  stroke: #000;
  shape-rendering: crispEdges;
}

.x.axis path {
  display: none;
}

select {
  position: absolute;
  top: 10px
}

</style>
<body>
<select id="flter" name="flter" onchange="updateData(this.id)">
  <option value=""></option>
  <option value="DataSet0.csv">DataSet0</option>
  <option value="DataSet1.csv">DataSet1</option>
  <option value="DataSet2.csv">DataSet2</option>
  <option value="DataSet3.csv">DataSet3</option>
</select>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script>

var margin = {top: 60, right: 60, bottom: 90, left: 120},
    width = 960 - margin.left - margin.right,
    height = 700 - margin.top - margin.bottom;

var x = d3.scale.ordinal()
    .rangeRoundBands([0, width], .1);

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")
    .ticks(10, "$");

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.csv(fileName, type, function(error, data) {
  if (error) throw error;

  x.domain(data.map(function(d) { return d.Letter; }));
  y.domain([(d3.min(data, function(d) { return d.Value1; }) - 50), d3.max(data, function(d) { return d.Value1; })]);

  svg.append("g")
      .attr("class", "x axis")
      .attr("transform", "translate(0," + height + ")")
      .call(xAxis)
      .selectAll("text")
       .style("text-anchor", "end")
       .attr("dx", "-.8em")
       .attr("dy", ".15em")
       .attr("transform", "rotate(-15)" );

  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("Value1");

  svg.selectAll(".bar")
      .data(data)
    .enter().append("rect")
      .attr("class", "bar")
      .attr("x", function(d) { return x(d.Letter); })
      .attr("width", x.rangeBand())
      .attr("y", function(d) { return y(d.Value1); })
      .attr("height", function(d) { return height - y(d.Value1); });
});

function updateData(s){
    var s = document.getElementById(s);
    var fileName = s.value;
    d3.csv(fileName, type, function(error, data) {
        if (error) throw error;

        x.domain(data.map(function(d) { return d.Letter; }));
        y.domain([(d3.min(data, function(d) { return d.Value1; }) - 50), d3.max(data, function(d) { return d.Value1; })]);



        svg.append("g")
         .attr("class", "x axis")
         .attr("transform", "translate(0," + height + ")")
         .call(xAxis)
         .selectAll("text")
           .style("text-anchor", "end")
           .attr("dx", "-.8em")
           .attr("dy", ".15em")
           .attr("transform", "rotate(-15)" );

        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("Value1");

        svg.selectAll(".bar")
           .data(data)
        .enter().append("rect")
           .attr("class", "bar")
           .attr("x", function(d) { return x(d.Letter); })
           .attr("width", x.rangeBand())
           .attr("y", function(d) { return y(d.Value1); })
           .attr("height", function(d) { return height - y(d.Value1); });
});
}

function type(d) {
  d.Value1 = +d.Value1;
  return d;
}
</script>
</body>
</html>
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<style>

  .bar {
    fill: steelblue;
  }

  .bar:hover {
    fill: brown;
  }

  .axis {
    font: 10px sans-serif;
  }

  .axis path,
  .axis line {
    fill: none;
    stroke: #000;
    shape-rendering: crispEdges;
  }

  .x.axis path {
    display: none;
  }

  select {
    position: absolute;
    top: 10px
  }

</style>
<body>
<select id="flter" name="flter" onchange="updateData(this.id)">
  <option value=""></option>
  <option value="DataSet0.csv">DataSet0</option>
  <option value="DataSet1.csv">DataSet1</option>
  <option value="DataSet2.csv">DataSet2</option>
  <option value="DataSet3.csv">DataSet3</option>
</select>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js"></script>
<script>

  var margin = {top: 60, right: 60, bottom: 90, left: 120},
    width = 960 - margin.left - margin.right,
    height = 700 - margin.top - margin.bottom,
    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 + ")");

  var x = d3.scale.ordinal()
      .rangeRoundBands([0, width], .1, 0),
    xAxis = d3.svg.axis()
    .scale(x)
    .orient("bottom"),
    gX = svg.append("g")
    .attr("class", "x axis")
    .attr("transform", "translate(0," + height + ")");

  var y = d3.scale.linear()
    .range([height, 0]),
    yAxis = d3.svg.axis()
      .scale(y)
      .orient("left")
      .ticks(10, "$"),
    gY = svg.append("g")
      .attr("class", "y axis");

  function updateData(s){
    var s = document.getElementById(s);

    var fileName = s.value;

    d3.csv(fileName, type, function(error, data) {
      if (error) throw error;

      x.domain(data.map(function(d) { return d.Letter; }));
      y.domain([(d3.min(data, function(d) { return d.Value1; }) - 50), d3.max(data, function(d) { return d.Value1; })]);

      gX.call(xAxis)
        .selectAll("text")
        .style("text-anchor", "end")
        .attr("dx", "-.8em")
        .attr("dy", ".15em")
        .attr("transform", "rotate(-15)" );

      gY.call(yAxis)
        // only add title once
        .selectAll(".title")
        .data(["Value1"])
        .enter().append("text").attr("class", "title")
        .attr("transform", "rotate(-90)")
        .attr("y", 6)
        .attr("dy", ".71em")
        .style("text-anchor", "end")
        .text(function(d){
          return d
        });

      // GENERAL UPDATE PATTERN
      // UPDATE
      var bars = svg.selectAll(".bar")
        .data(data);
      // ENTER
      bars.enter().insert("rect", ".axis")
        .attr("class", "bar");
      // UPDATE+ENTER (calling enter() merges enter into update)
      bars.attr("x", function(d) { return x(d.Letter); })
        .attr("width", x.rangeBand())
        .attr("y", function(d) { return y(d.Value1); })
        .attr("height", function(d) { return height - y(d.Value1); });
      // EXIT
      bars.exit().remove();

    });
    function type(d) {
      d.Value1 = +d.Value1;
      return d;
    }
  }

</script>
</body>
</html>