笛卡尔轴(Cartesian Axes)

遵循笛卡尔网格的轴被称为“笛卡尔轴”。直角坐标轴用于折线图、条形图和气泡图。 Chart.js 中默认包含四个笛卡尔坐标轴。

通用配置

所有包含笛卡尔轴的图表都支持多种通用选项。

名称类型默认值描述
typeString图表类型
positionString轴在图表中的位置。可用的值有: 'top', 'left', 'bottom', 'right'
idString连接数据集和刻度轴的 ID 更多…
gridLinesObject网格线配置 更多…
scaleLabelObject刻度文字选项 更多…
ticksObject刻度配置 更多…

坐标轴刻度选项

以下选项对于所有直角坐标轴是通用的,但不适用于其他坐标轴。

名称类型默认值描述
autoSkipBooleantrue如果为 true,则自动计算可以显示的标签数量并相应地隐藏其他标签。为 false 则任何时候都显示所有的标签。
autoSkipPaddingNumber0启用autoSkip时,在水平轴上的刻度之间进行填充。 注意: 仅适用于水平刻度
labelOffsetNumber0以像素为单位,用于从标记的中心点(x轴的y方向和y轴的x方向)偏移标签。注意: 这可能会导致边缘的标签被canvas边缘裁剪掉
maxRotationNumber90刻度标签的最大旋转角度。 注意: 必要时才会发生旋转 注意: 仅适用于水平刻度
minRotationNumber0刻度标签的最小旋转。注意:仅适用于水平刻度
mirrorBooleanfalse翻转坐标轴上的刻度标签,在图表内显示标签而不是外部。注意:仅适用于垂直刻度
paddingNumber10在刻度标签和坐标轴之间填充。注意:仅适用于水平刻度

坐标轴ID

属性dataset.xAxisIDdataset.yAxisID必须与比例属性scales.xAxes.idscales.yAxes.id匹配。尤其是在使用多轴图表时,这些属性尤为重要。

  1. var myChart = new Chart(ctx, {
  2. type: "line",
  3. data: {
  4. datasets: [
  5. {
  6. // 该数据集出现在第一个坐标轴上
  7. yAxisID: "first-y-axis"
  8. },
  9. {
  10. // 该数据集出现在第二个坐标轴上
  11. yAxisID: "second-y-axis"
  12. }
  13. ]
  14. },
  15. options: {
  16. scales: {
  17. yAxes: [
  18. {
  19. id: "first-y-axis",
  20. type: "linear"
  21. },
  22. {
  23. id: "second-y-axis",
  24. type: "linear"
  25. }
  26. ]
  27. }
  28. }
  29. });

创建多坐标轴

使用笛卡尔坐标轴,可以创建多个X轴和Y轴。 为此,您可以将多个配置对象添加到xAxesyAxes属性。 在添加新坐标轴时,请确保指定新坐标轴的类型,因为在这种情况下,默认类型是 not

在下面的例子中,我们创建了两个Y轴。然后我们使用yAxisID属性将数据集映射到正确的坐标轴。

  1. var myChart = new Chart(ctx, {
  2. type: 'line',
  3. data: {
  4. datasets: [{
  5. data: [20, 50, 100, 75, 25, 0],
  6. label: 'Left dataset',
  7. // 将数据集绑定到左侧的y轴
  8. yAxisID: 'left-y-axis'
  9. }, {
  10. data: [0.1, 0.5, 1.0, 2.0, 1.5, 0],
  11. label: 'Right dataset',
  12. // 将数据及绑定到右侧的y轴
  13. yAxisID: 'right-y-axis',
  14. }],
  15. labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
  16. },
  17. options: {
  18. scales: {
  19. yAxes: [{
  20. id: 'left-y-axis',
  21. type: 'linear',
  22. position: 'left'
  23. }, {
  24. id: 'right-y-axis',
  25. type: 'linear',
  26. position: 'right'
  27. }]
  28. }
  29. }
  30. });