سؤال

لدي هذا الكود لإنتاج lineplusBarChart

لغة البرمجة

<div id="chart1" class='with-3d-shadow with-transitions'>
    <svg> </svg>
  </div>

نصوص

<script src="../lib/d3.v3.js"></script>
<script src="../nv.d3.js"></script>
<script src="../src/models/linePlusBarChart.js"></script>
<script>
var time="1134345600000";
var quantity="12332212"

    var testdata = [
      {
        "key" : "Quantity" ,
        "bar": true,
        "values" : [ [ 1136005200000 , 1271000.0] ]
      }
    ].map(function(series) {
      series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
      return series;
    });

testdata[0].values.push([time, quantity]);//NOT SHOWING THE BAR
    var chart;

    nv.addGraph(function() {
        chart = nv.models.linePlusBarChart()
            .margin({top: 30, right: 60, bottom: 50, left: 70})
            .x(function(d,i) { return i })
            .color(d3.scale.category10().range());

        chart.xAxis.tickFormat(function(d) {
          var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
          return dx ? d3.time.format('%x')(new Date(dx)) : '';
          })
          .showMaxMin(false);

        chart.y1Axis
            .tickFormat(d3.format(',f'));

        chart.y2Axis
            .tickFormat(function(d) { return '$' + d3.format(',.2f')(d) });

        chart.bars.forceY([0]).padData(false);
        //chart.lines.forceY([0]);

        d3.select('#chart1 svg')
            .datum(testdata)
          .transition().duration(500).call(chart);

        nv.utils.windowResize(chart.update);

        chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });

        return chart;
    });

</script>

الآن أريد إضافة بعض المتغيرات إلى الرسم البياني من جافا سكريبت.لنفترض أن لدي متغيرين var time="1134345600000" و var quantity="12332212".أريد بعض كيفية دفع هذين المتغيرين إلى var testdata.values.

هل هناك طريقة ممكنة؟

تجريبي (رمز JS بعد السطر 23240)

هل كانت مفيدة؟

المحلول

في حالتك الخاصة، تحتاج إلى دفع البيانات مثل هذا:

testdata[0].values.push({x: +time, y: +quantity});

تجريبي هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top