Can i use d3.js for creating interactive visualizations inside an android app?

后端 未结 5 1899
無奈伤痛
無奈伤痛 2020-12-24 13:21

I am trying to create an interactive visualization within an android app.

The data that will be visualized will be stored locally in a sqlite database and will be q

5条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-24 13:57

    For those of you, like me, trying to learn how to integrate D3 in Android via the referenced tutorial here is the js code for the D3 Pie Chart for the current D3 Version V5.

    function loadPieChart(dataset) {
          var svg = d3.select("#piechart");
          var height = 500;
          var width = 500;
          var textLabelSuffix = "%";
    
          showPieChart(dataset, svg, height, width,
              textLabelSuffix);
        }
    
        function showPieChart(dataset, svg, height, width,
          textLabelSuffix)
        {
          var outerRadius = width / 2;
          var innerRadius = 0;
    
          // set height/width to match the SVG element
          svg.attr("height", height).attr("width", width);
    
          // create a new pie layout
          var pie = d3.pie();
    
          // initialize arcs/wedges to span
          // the radius of the circle
          var arc = d3.arc()
                       .innerRadius(innerRadius)
                       .outerRadius(outerRadius);
    
          // create groups
          var arcs = svg.selectAll("g.arc")
                        // bind dataset to pie layout
                        .data(pie(dataset))
                        // create groups
                        .enter()
                        // append groups
                        .append("g")
                        // create arcs
                        .attr("class", "arc")
                        // position each arc in the pie layout
                        .attr("transform", "translate(" +
                         outerRadius + "," +
                         outerRadius + ")");
    
    
          // initialize color scale - refer to
          // https://github.com/mbostock/d3/wiki/Ordinal-Scales
          var color = d3.scaleOrdinal(d3.schemeAccent);
    
    
    
          arcs.append("path")
              .attr("fill", function(d,i) { return color(i); })
              .attr("d", arc);
    
          arcs.append("text")
              .attr("transform", function(d) {
                  return "translate(" + arc.centroid(d) + ")";
               })
              .attr("text-anchor", "middle")
              .text(function(d) { return d.value +
                 textLabelSuffix; });
        }
    

提交回复
热议问题