我正在使用它在我的应用程序中生成大量单词,并且从如下所示的json文件中获取数据:

var a = [];

    for (var i=0; i < a.length; i++){
            a.push(a[i].word);
        }


这给了我们一个数组。

a = ["gsad","sagsa","gsag","sagas","gsag","gsagas","yhff","gag"];


我让它正确显示在屏幕上,但是由于该行太长,它从边框掉出来,我想给它一个链接中断,而不是更改SVG大小,我该怎么做?

更新:

下面的代码是我插入代码的方式:

var PositiveArr = [“ gsad”,“ sagsa”,“ gsag”,“ sagas”,“ gsag”,“ gsagas”,“ yhff”,“ gag”]; //考虑NegativeArr,NeutralArr具有相似的内容

var fill = d3.scale.category20();
                  d3.layout.cloud().size([600, 300])
                      .words([NegativeArr,NeutralArr,PositiveArr].map(function(d) {
                        return {text: d, size: 10 + Math.random() * 50};
                      }))
                      .rotate(function() { return ~~(Math.random() * 2) * 90; })
                      .font("Impact")
                      .fontSize(function(d) { return d.size; })
                      .on("end", draw)
                      .start();


                  function draw(words) {
                    d3.select("#pre-theme").append("svg")
                        .attr("width", 600)
                        .attr("height", 300)
                      .append("g")
                        .attr("transform", "translate(300,150)")
                      .selectAll("text")
                        .data(words)
                      .enter().append("text")
                        .style("font-size", function(d) { return d.size + "px"; })
                        .style("font-family",  "Impact, Arial")
                        .style("fill", function(d, i) { return fill(i); })
                        .attr("text-anchor", "middle")
                        .attr("transform", function(d) {
                          return "translate(" + [d.x, d.y] + ")rotate(" + d.rotate + ")";
                        })
                        .text(function(d) { return d.text; });
                  }


解:
我发现自己是一个解决方案,我只是使用合并所有数组

var allResult = PersonsArr.concat(PlacesArr,PatternsArr,ProductsArr,CompaniesArr);


然后将.map插入

.words(entityResult.map(function(d) {
                        return {text: d, size: 10 + Math.random() * 50};
                      }))

最佳答案

解决方案:我发现自己是一个解决方案,我只是使用以下方法将所有数组合并为一个

var allResult = PersonsArr.concat(PlacesArr,PatternsArr,ProductsArr,CompaniesArr);


然后将.map插入

.words(entityResult.map(function(d) {
                        return {text: d, size: 10 + Math.random() * 50};
                      }))

关于javascript - d3标签云中的换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36446704/

10-09 21:27