Функция d3 внутри моей функции атрибута (.attr ("d", ... оператор) разбивает код (D3 Version 5 - Scatterplot) - PullRequest
0 голосов
/ 05 февраля 2019

Я работаю с d3 версии 5 для создания диаграммы рассеяния.

Следующий код работает без сбоев.

svg.selectAll(".point")
                .data(data)
                .enter().append("path")
                .attr("class", "point")
                .attr("d", d3.symbol().type(d3.symbolCross))                                         
                .attr("Fill",'steelblue')
                .attr("transform", function(d) {return 
                  "translate("+ x(d.x) + "," + y(d.y) + ")"; })
                });

Но когда я использую d внутри любой функции, это нарушает отображение.Даже если я использую почти простейшую возможную функцию.

svg.selectAll(".point")
                    .data(data)
                    .enter().append("path")
                    .attr("class", "point")
                    .attr("d", function(d) { return              
                      "d3.symbol().type(d3.symbolCross)";}
                    .attr("Fill",'steelblue')
                    .attr("transform", function(d) {                        
                        return "translate(" 
                       + x(d.x) + "," + y(d.y) + ")"; })
                    });

1 Ответ

0 голосов
/ 05 февраля 2019

На самом деле ошибка не из-за использования d.Все дело в том, чтобы не закрывать функцию должным образом.Убедитесь, что вы правильно открываете и закрываете фигурные скобки.Пожалуйста, попробуйте это.

svg.selectAll(".point")
            .data(data)
            .enter().append("path")
            .attr("class", "point")
            .attr("d", d3.symbol().type(d3.symbolCross))       
            .attr("Fill",'steelblue')
            .attr("transform", (d) => "translate(" + d.x + "," + d.y + ")");
...