0

我在 html 页面中成功渲染了 d3js 区域图这是在 chrome 或 mozilla 中成功渲染的代码。文件的名称是 temp.html。这是代码

<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
    <title>js graphs and charts libraries</title>


    <script 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

    <script src="http://d3js.org/d3.v3.js"></script>

    <body>
        <div id="dbar">

        </div>

    <script type="text/javascript"> 
        var margin = {top:10, right: 20, bottom: 30,left: 40},
            width = 960 - margin.left - margin.right,
            height = 400 - margin.top - margin.bottom;
            var svg = d3.select ("#dbar").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 parseDate = d3.time.format("%m-%Y").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 area = d3.svg.area().x(function(d) { return x(d.date); })
                    .y0(height)
                    .y1(function(d) { return y(d.count); });




        d3.json("data/json.json", function(error, data) {
          data.StoreVisitGraphCount.list.forEach(function(d) {

            d.date = parseDate(d.date);

            d.count = +d.count;
          });
          //console.log(data.StoreVisitGraphCount.list);
        x.domain(d3.extent(data.StoreVisitGraphCount.list, function(d) {
return d.date; }));
        y.domain([0, d3.max(data.StoreVisitGraphCount.list, function(d) { 
`return d.count; })]);`
    console.log(data.StoreVisitGraphCount.list);
      svg.append("path")
          .datum(data.StoreVisitGraphCount.list)
          .attr("class", "area")
          .attr("d", area);

      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 ($)");
        });
    </script>


    </body>
</html>

但是,当我复制粘贴此代码以说“temp.jsp”页面时,它不会呈现并且图表不会出现。

需要建议

4

1 回答 1

0

我在你的标题中看到你提到了 flexigrid :) 你应该更新它。

要回答您的问题,有两个可能的问题: 1. 确保“data/json.json”服务正常(不是 404 错误) 2. 将文件保存为 .jsp 可能意味着您需要额外的代码。

于 2013-01-26T06:53:13.190 回答