【问题标题】:d3.js v5 How do I truncate tick text?d3.js v5 如何截断刻度文本?
【发布时间】:2021-01-12 20:31:51
【问题描述】:

我有一个图表,在我的 y 轴上有一些长分类标题。我想将它们截断为 15 个字符,但我不知道在哪里做。我发现的很多链接都处理包装标签但不截断?

我使用“ticktext”吗?有没有办法选择标签并对它们应用截断公式?

感谢您的帮助。

【问题讨论】:

标签: javascript d3.js


【解决方案1】:

这些建议帮助我更接近。这就是我最终要做的。

var y = d3.scaleBand()
    .range([ 0, heightBar ])
    .domain(topGamesData.map(function(d) { return d.name; }))
    .padding(.1);
    bars.append("g")
    .attr("transform", "translate("+adj*3+"," + 0 + ")")
    .call(d3.axisLeft(y))
    .selectAll(".tick text")
        .call(truncateLabel, y.bandwidth())

然后这是我的截断函数

function truncateLabel(text, width) {
  text.each(function() {
    gameName = d3.select(this).text();
    if(gameName.length > 10){
        gameName = gameName.slice(0,10)
    }
    d3.select(this).text(gameName)
  })
}

【讨论】:

  • 很酷,谢谢!但是您没有使用宽度变量,是您忘记了它还是在此过程中改变了主意?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2022-01-20
  • 2021-09-22
  • 1970-01-01
  • 2014-03-23
  • 1970-01-01
相关资源
最近更新 更多