Chart.js:固定垂直轴的水平位置
Chart.js: Fixed horizontal location of vertical axis
如何保证以像素为单位的垂直轴距屏幕边缘的固定水平位置?照片显示了轴位置如何根据刻度标签中的数字位数而变化。 (我需要照片中的 X 保持不变,这样情节才能与页面上的其他元素对齐。)
我试过调整:
- 选项 > 布局 > 内边距 > 左;这会将所有内容向右移动,但垂直轴的位置仍然取决于 y 轴刻度标签中的位数。
- 选项 > 尺度 > y 轴 > 刻度 > 填充;这会更改标签和轴之间的 space,但不能保证垂直轴的位置。
(我正在使用选项 > responsive = false。)
也许有更好的方法,但这对我有用。
在图表选项中,我设置:options > layout > padding > left
为适合我的情况的默认像素数量,当比例标签只有两位数字标签时。
然后我为 yAxes 设置一个 ID,以便以后可以访问它:options > scales > yAxes > id
。
然后在我的 JavaScript 中,在定义图表的代码之后,我添加了以下代码,如果比例标签有三位数字(在我的例子中我将其设置为 1),它会调整左填充:
var axis = myLineChart.scales.<id of my y axis>;
var max_tick_label = axis.ticks[0];
if (max_tick_label >= 100) {
myLineChart.options.layout.padding['left'] = 1;
myLineChart.update();
}
如何保证以像素为单位的垂直轴距屏幕边缘的固定水平位置?照片显示了轴位置如何根据刻度标签中的数字位数而变化。 (我需要照片中的 X 保持不变,这样情节才能与页面上的其他元素对齐。)
我试过调整:
- 选项 > 布局 > 内边距 > 左;这会将所有内容向右移动,但垂直轴的位置仍然取决于 y 轴刻度标签中的位数。
- 选项 > 尺度 > y 轴 > 刻度 > 填充;这会更改标签和轴之间的 space,但不能保证垂直轴的位置。
(我正在使用选项 > responsive = false。)
也许有更好的方法,但这对我有用。
在图表选项中,我设置:options > layout > padding > left
为适合我的情况的默认像素数量,当比例标签只有两位数字标签时。
然后我为 yAxes 设置一个 ID,以便以后可以访问它:options > scales > yAxes > id
。
然后在我的 JavaScript 中,在定义图表的代码之后,我添加了以下代码,如果比例标签有三位数字(在我的例子中我将其设置为 1),它会调整左填充:
var axis = myLineChart.scales.<id of my y axis>;
var max_tick_label = axis.ticks[0];
if (max_tick_label >= 100) {
myLineChart.options.layout.padding['left'] = 1;
myLineChart.update();
}