如何设置 ChartJS Y 轴标题?

IT技术 javascript jquery charts chart.js
2021-03-15 21:32:19

我正在使用Chartjs来显示图表,我需要设置 y 轴的标题,但文档中没有关于它的信息。

我需要像图片一样设置 y 轴,或者在 y 轴的顶部,这样现在有人可以知道那个参数是什么

我在官方网站上看过,但没有关于它的信息

6个回答

在 Chart.js 2.0 版中,这是可能的:

options = {
  scales: {
    yAxes: [{
      scaleLabel: {
        display: true,
        labelString: 'probability'
      }
    }]
  }
}

有关更多详细信息,请参阅轴标签文档

这对我不起作用 - 也许还有另一个步骤也与让标签显示相关?
2021-04-28 21:32:19
这对我来说非常有效,谢谢。(我正在使用Chart-2.1.4.min.js图书馆。)
2021-05-03 21:32:19
@GeorgeLica你只是重复之间的部分[]大概你已经有多个 yAxes,所以只需添加scaleLabel到每个。
2021-05-04 21:32:19
不看你的代码很难说。它适用于不同的图表,还是仅适用于特定的图表?如果将图表放在页面的其他位置会发生什么?你检查过 Chart.js 的版本吗?
2021-05-07 21:32:19
@andyhasit 如果我有多个 y 轴,我如何为每个 y 比例设置标签?(注意:我使用的是角度图)。
2021-05-11 21:32:19

对于 Chart.js 2.x,请参考 andyhasit 的回答 - https://stackoverflow.com/a/36954319/360067

对于 Chart.js 1.x,您可以调整选项并扩展图表类型以执行此操作,如下所示

Chart.types.Line.extend({
    name: "LineAlt",
    draw: function () {
        Chart.types.Line.prototype.draw.apply(this, arguments);

        var ctx = this.chart.ctx;
        ctx.save();
        // text alignment and color
        ctx.textAlign = "center";
        ctx.textBaseline = "bottom";
        ctx.fillStyle = this.options.scaleFontColor;
        // position
        var x = this.scale.xScalePaddingLeft * 0.4;
        var y = this.chart.height / 2;
        // change origin
        ctx.translate(x, y);
        // rotate text
        ctx.rotate(-90 * Math.PI / 180);
        ctx.fillText(this.datasets[0].label, 0, 0);
        ctx.restore();
    }
});

像这样称呼它

var ctx = document.getElementById("myChart").getContext("2d");
var myLineChart = new Chart(ctx).LineAlt(data, {
    // make enough space on the right side of the graph
    scaleLabel: "          <%=value%>"
});

注意标签值前面的空格,这为我们提供了编写 y 轴标签的空间,而不会弄乱太多 Chart.js 内部结构


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


在此处输入图片说明

@jmercouris - 在答案顶部添加了注释。我认为问题是针对 1.x 的(不记得当时 2.x 是否可用)。干杯!
2021-04-25 21:32:19
@Hajjat​​ - 你可以发布一个新问题和/或解决这个问题。干杯!
2021-05-04 21:32:19
@Guru - 是的,只需将上面的 Line 更改为 Bar 的所有内容即可。
2021-05-08 21:32:19
条形图可以吗?
2021-05-15 21:32:19
@Thunder - 你是对的 - 你需要为 x 轴标签腾出空间。您想快速搜索一下是否已经存在这样的问题吗?如果没有,您可能想要创建一个新问题(当前问题有点过于关注 y 轴,无法考虑在不进行大量更改的情况下使其通用)。干杯!
2021-05-15 21:32:19

对于 x 和 y 轴:

     options : {
      scales: {
        yAxes: [{
          scaleLabel: {
            display: true,
            labelString: 'probability'
          }
        }],
        xAxes: [{
          scaleLabel: {
            display: true,
            labelString: 'hola'
          }
        }],
      }
    }

chart.js 通过默认检查链接支持这一点。 图表

您可以在选项属性中设置标签。

选项对象看起来像这样。

options = {
            scales: {
                yAxes: [
                    {
                        id: 'y-axis-1',
                        display: true,
                        position: 'left',
                        ticks: {
                            callback: function(value, index, values) {
                                return value + "%";
                            }
                        },
                        scaleLabel:{
                            display: true,
                            labelString: 'Average Personal Income',
                            fontColor: "#546372"
                        }
                    }   
                ]
            }
        };

对于 Chart.js 3.x

options: {
  scales: {
    y: {
      title: {
        display: true,
        text: 'Y axis title'
      }
    }
  }
}