操纵D3轴标签

时间:2013-10-17 03:46:12

标签: javascript d3.js

我第一次使用D3,我正在尝试制作一个平行坐标图。我基本上使用的是this demo。我唯一真正的改变是改变数据并改变最右边的轴,所以它有字符串而不是数字作为标签。我这样做是通过使用以下内容:

        if(d === "Dog Breed") {
            y[d] = d3.scale.ordinal()
              .domain(dogData.map(function(p) { return p[d]; }))
              .rangePoints([h, 0]);  // quantitative color scale

        }

不幸的是,如果狗的品种太长,文字会被切断,这使得标签难以阅读(人们必须完全移动轴才能阅读它,但是当他们放开它时,它会去回到最初的位置。)

我的其他变化如下:

        var m = [30, 10, 10, 10],
        w = screen.width - 150, // Make it 150px less than the screen's width.
        h = 500 - m[0] - m[2];

轴标签代码在以下位置保持不变:

          // Add an axis and title.
      g.append("svg:g")
          .attr("class", "axis")
          .each(function(d) { d3.select(this).call(axis.scale(y[d])); })
        .append("svg:text")
          .attr("text-anchor", "middle")
          .attr("y", -9)
          .text(String);

有没有办法避免名字被剪裁的东西?即使将图表本身移动到大约20px的块中也会有所帮助,但我不知道代码的位置会在哪里......

1 个答案:

答案 0 :(得分:0)

修复是操纵温暖在m [3]左侧有更多。