javascript - ChartJS xAxis 标签位置

标签 javascript chart.js vue-chartjs

我有一个 ChartJS,当您将窗口调整为更小的尺寸时,它会将标签显示为倾斜的。

enter image description here

我想做的是将 X 标签垂直向下降低一点,这样它们就不会尽可能靠近图表的底部。

谷歌搜索后,我似乎可以禁用 x 轴的刻度显示并使用选项的动画手动执行此操作。我尝试在以下 fiddle 中实现它.

    animation: {
      duration: 1,
      onComplete: function() {
        var chartInstance = this.chart;
        this.data.datasets.forEach(function(dataset, i) {
          var meta = chartInstance.controller.getDatasetMeta(i);
          meta.data.forEach(function(bar, index) {

            var label = bar._model.label;
            var xOffset = bar._model.x;
            var yOffset = bar._model.y;
            ctx.fillText(label, xOffset, 420);
          });
        });
      }
    },

但是,当我调整窗口大小时,我无法让标签正确缩放。你能帮忙吗?

最佳答案

Chart.js 在 ticks 中实现了一个 padding 属性为此目的:

Padding between the tick label and the axis. When set on a vertical axis, this applies in the horizontal (X) direction. When set on a horizontal axis, this applies in the vertical (Y) direction.

这是一个工作示例,其中 x 轴标签从该行向下偏移 20 像素:

new Chart(document.getElementById("chart"), {
  type: "bar",
  data: {
    labels: ["Blue", "Red", "Green", "Orange", "Purple"],
    datasets: [{
      data: [0, 1, 2, 3, 4]
    }]
  },
  options: {
    maintainAspectRatio: false,
    scales: {
      xAxes: [{
        ticks: {
          padding: 20
        }
      }]
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js"></script>
<div style="height:200px;width:200px">
  <canvas id="chart"></canvas>
</div>

关于javascript - ChartJS xAxis 标签位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58209089/

相关文章:

javascript - ChartJS 在 show() 调用时重播图表动画

javascript - Chart.js 中未显示数据时隐藏 Y 轴标签

javascript - react 路由器 v6 在组件之外导航

javascript - Chart.js 子标签

javascript - 未捕获( promise )TypeError : this. renderChart 不是函数 VueJs Chart.js

vue.js - VueJs - 在方法之间传递变量

vue.js - Vue 和 Chartjs - 运行一个简单的 vue-chartjs 示例

javascript - 使用复选框实时更新 UI

java - 在 Struts 1.2 中使用 JavaScript 提交表单

javascript - 如何按间隔显示数组索引中的值