Member 13844840 Ответов: 0

Не могу достать d3.js привязка данных к работе


Возникли проблемы с привязкой новых данных к пузырьковой диаграмме D3. Мой AJAX-вызов API получает хороший JSON-ответ. Я проверил ответ, и он получает данные в том же формате, что и заданные в жестко закодированных данных, используемых для первоначальной настройки диаграммы. Должно быть, я что-то упустил, потому что моя диаграмма не показывает новых данных. Нужно ли мне перерисовывать диаграмму? Ниже приведено то, что я уже пробовал

Что я уже пробовал:

$(document).ready(function () {
    var uri = 'api/testing';
    $.getJSON(uri, function (data, error) {

  //DATA BIND/START - NOT UPDATING CHART
        d3.selectAll("bubbleChart")
        .data(data)
        .enter().append("bubbleChart")
        .attr("text", function (d) { return d.text; })
        .attr("count", function (d) { return d.count; });
  //DAT BIND/END
});
var bubbleChart = new d3.svg.BubbleChart({
    supportResponsive: true,
    size: 600,
    innerRadius: 600 / 3.5,
    radiusMin: 50,
    data: {
        items: [
            { text: "aaa", count: "236" },
            { text: "bbb", count: "382" },
            { text: "ccc", count: "170" },
            { text: "ddd", count: "123" },
                 { text: kk, count: ll}
        ],
        eval: function (item) { return item.count; },
        classed: function (item) { return item.text.split(" ").join(""); }
    },
    plugins: [
        {
            name: "central-click",
            options: {
                text: "(See more detail)",
                style: {
                    "font-size": "12px",
                    "font-style": "italic",
                    "font-family": "Source Sans Pro, sans-serif",
                    "text-anchor": "middle",
                    "fill": "white"
                },
                attr: { dy: "65px" },
                centralClick: function () {
                    alert("Here is more details!!");
                }
            }
        },
        {
            name: "lines",
            options: {
                format: [
                    {// Line #0
                        textField: "count",
                        classed: { count: true },
                        style: {
                            "font-size": "28px",
                            "font-family": "Source Sans Pro, sans-serif",
                            "text-anchor": "middle",
                            fill: "white"
                        },
                        attr: {
                            dy: "0px",
                            x: function (d) { return d.cx; },
                            y: function (d) { return d.cy; }
                        }
                    },
                    {// Line #1
                        textField: "text",
                        classed: { text: true },
                        style: {
                            "font-size": "14px",
                            "font-family": "Source Sans Pro, sans-serif",
                            "text-anchor": "middle",
                            fill: "white"
                        },
                        attr: {
                            dy: "20px",
                            x: function (d) { return d.cx; },
                            y: function (d) { return d.cy; }
                        }
                    }
                ],
                centralFormat: [
                    {// Line #0
                        style: { "font-size": "50px" },
                        attr: {}
                    },
                    {// Line #1
                        style: { "font-size": "30px" },
                        attr: { dy: "40px" }
                    }
                ]
            }
        }]
     });
});


function formatItem(item)
{
    return 'text:' + item.text + ', count:' +  item.count;
}

0 Ответов