javascript - 如何在折线/条形混合图表 (Chart.js) 中从左侧 Y 轴开始折线图?

标签 javascript charts chart.js

我需要折线图从左 y 轴开始。这是一个 link to JSFiddle .是否有可能以某种方式“破解”线从那里开始而不会弄乱条形图?

    datasets: [{
        type: 'line',
        label: 'A',
        yAxisID: 'A',
        fill: false,
        data: [60, 80, 90, 80, 80, 60, 50],
        backgroundColor: 'rgba(255, 0, 0, 1)',
        borderColor: 'rgba(255, 0, 0, 1)',
        radius: 0
    }

最佳答案

您可以将其与隐藏的第二个 x 轴匹配:
V3 示例:

var ctx = document.getElementById("canvas");
var myChart = new Chart(ctx, {
  type: 'bar',
  data: {
    labels: ['Mon', 'Tue', 'Wen', 'Thu', 'Fri', 'Sat', 'Sun'],
    datasets: [{
      type: 'line',
      label: 'A',
      data: [60, 80, 90, 80, 80, 60, 50],
      backgroundColor: 'rgba(255, 0, 0, 1)',
      borderColor: 'rgba(255, 0, 0, 1)',
      radius: 0,
      xAxisID: 'secondX'
    }, {
      type: 'bar',
      label: 'B',
      yAxisID: 'yB',
      data: [5, 2, 1, 3, 4, 5, 6],
      backgroundColor: [
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)'
      ]
    }]
  },
  options: {
    scales: {
      x: {},
      secondX: {
        axis: 'x',
        offset: false,
        display: false
      },
      y: {
        type: 'linear',
        position: 'left',
        ticks: {
          max: 100,
          min: 0
        }
      },
      yB: {
        position: 'right',
        ticks: {
          max: 10,
          min: 0
        }
      }
    }
  }
});
<canvas id="canvas"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.6.0/chart.js"></script>

V2 示例:

var ctx = document.getElementById("canvas");
var myChart = new Chart(ctx, {
  type: 'bar',
  data: {
    labels: ['Mon', 'Tue', 'Wen', 'Thu', 'Fri', 'Sat', 'Sun'],
    datasets: [{
      type: 'line',
      label: 'A',
      yAxisID: 'A',
      fill: false,
      data: [60, 80, 90, 80, 80, 60, 50],
      backgroundColor: 'rgba(255, 0, 0, 1)',
      borderColor: 'rgba(255, 0, 0, 1)',
      radius: 0,
      xAxisID: 'second'
    }, {
      type: 'bar',
      label: 'B',
      yAxisID: 'B',
      data: [5, 2, 1, 3, 4, 5, 6],
      backgroundColor: [
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)',
        'rgba(0, 0, 255, 0.5)'
      ]
    }]
  },
  options: {
    scales: {
      xAxes: [{}, {
        id: 'second',
        display: false
      }],
      yAxes: [{
        id: 'A',
        type: 'linear',
        position: 'left',
        ticks: {
          max: 100,
          min: 0
        }
      }, {
        id: 'B',
        position: 'right',
        ticks: {
          max: 10,
          min: 0
        }
      }]
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.bundle.js"></script>
<canvas id="canvas"></canvas>

关于javascript - 如何在折线/条形混合图表 (Chart.js) 中从左侧 Y 轴开始折线图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43536683/

相关文章:

javascript - three.js 相机绕 Y 轴的旋转似乎关闭

javascript - 车轮事件,以及 "mousewheel"的 deltaY 值

javascript - 如何让 VML 在标准模式下工作?

wpf - 目前无法修改此节点的逻辑子节点,因为正在进行树遍历

html - 是否可以在作为接入点运行的 ESP8266 Web 服务器上绘制图表?

javascript - 使用图表js限制数据点

javascript - ChartJS ReactJS 对象的对象

javascript - 将字符串转换为数组 - jQuery.inArray() 不工作

android - 如何在 android mpchart 中获取 Y 轴标签?

javascript - 如何使用 React-Chartkick 为 Chart.js BarCharts 设置附加选项