【问题标题】:change space between horizontal (grid) lines for line chart更改折线图的水平(网格)线之间的空间
【发布时间】:2023-03-31 17:21:01
【问题描述】:

是否可以手动更改水平(网格)线之间的间距?设置maintainAspectRatio: false,kinda 可以解决问题,但会使图形高度太窄。我看到有一个扩展现有图表类型的选项

Chart.types.Line.extend({
// Passing in a name registers this chart in the Chart namespace in the same way
name: "LineAlt",
initialize: function(data){
    console.log('My Line chart extension');
    Chart.types.Line.prototype.initialize.apply(this, arguments);
}
});

// Creates a line chart in the same way
new Chart(ctx).LineAlt(data);

但我不知道如何捕捉和改变线条之间的高度。我是chartjs的新手,可以这样做吗?任何帮助将非常感激。我正在尝试更改图形的高度或设置最大高度,以便它在响应时看起来不会太大?

【问题讨论】:

    标签: charts chart.js


    【解决方案1】:

    你可以传入选项。虽然没有直接设置网格线之间水平间距的选项,但您可以使用下面的(来自http://www.chartjs.org/docs/#getting-started-global-chart-configuration

    // Creates a line chart in the same way
    new Chart(ctx).LineAlt(data, {
         scaleOverride: true,
    
         scaleSteps: 10,
         scaleStepWidth: 20,
         scaleStartValue: 0,       
    });
    

    请注意,您需要所有 4 项设置。

    调整scaleStepWidth来控制间距。

    【讨论】:

    • 虽然您的代码减少了网格线之间的空间,但它不会改变我希望用它实现的图形高度:(我想为图形设置最大高度或计算新高度不知何故,因为图表看起来太大,同时保持响应!?另一方面,设置 maintainAspectRatio: false 会使图表高度太窄?
    • 当设置响应时,图形将调整大小以适应容器(如果 maintainAspectRatio 为 false),因此您所要做的就是设置容器的高度。如果这不起作用 - 你能设置一个小提琴吗?
    • 我正在尝试计算和更改图形高度 :(( 谢谢
    • @potatopeelings 是否可以更改 x 轴点之间的距离?比如水平网格或标签之间的距离?