隐藏x轴标签,但在chart.js中显示工具提示

时间:2016-02-26 12:00:13

标签: javascript html canvas chart.js

我找到了许多答案,如何隐藏每个第n个标签,但仍然能够在工具提示中显示它。但是有一个问题。如果标签很长,那么图表会以某种方式被绘制到画布的顶部。这是合乎逻辑的。但有没有办法隐藏标签,仍然在工具提示中显示它们但在计算y值时忽略它们?这样就可以从画布的顶部到底部绘制线条了吗?

感谢您的任何建议!!

1 个答案:

答案 0 :(得分:2)

您可以扩展折线图来执行此操作。改编自Hide labels on x-axis ChartJS(用于条形图),删除了一些不需要的代码。

我们做的很简单,我们首先将标签数组设置为空白,允许初始化发生,最后循环遍历(第一个)数据集的点,并将标签设置为原始标签。

Chart.types.Line.extend({
  name: "LineAlt",
  initialize: function(data){
    var originalLabels = data.labels;
    data.labels = data.labels.map(function() { return '' });

    Chart.types.Line.prototype.initialize.apply(this, arguments);
    this.datasets[0].points.forEach(function(bar, i) {
      bar.label = originalLabels[i];
    });
  }
});

即使您有多个数据集,也可以为第一个数据集设置标签 - 在构建multiTooltip时,从第一个数据集中选择标签。

小提琴 - http://jsfiddle.net/xjchy2dn/