在图表上设置最小和最大轴值

Set minimum and maximum axis values on chart

所以,我正在构建一个 Angular UI。使用 PrimeNG 图表组件,我有一个漂亮的小折线图。问题是图表的 y 轴是从数据数组的最小值开始的。 我试过设置 ticks 选项但无济于事。我的 chartjs 版本是 2.9.4,因为任何更大的版本都会破坏 primeng。 有任何想法吗? component for reference

这是代码

HTML

<p-chart #chart type="line" [data]="data" [options]="basicOptions"></p-chart>

组件


  @Input() id!: string;

  data: any;
  basicOptions: any;
  stats: any;

  constructor(private statService: StatService) { }

  ngOnInit(): void {
    this.stats = this.statService.getStats(this.id)
    this.data = {
      labels: this.stats.map((stat: { create_date: any; }) => stat.create_date),
      datasets: [
          {
              label: 'Views',
              data: this.stats.map((stat: { count: any; }) => stat.count),
              borderColor: '#42A5F5',
              //fill:false,
              backgroundColor: 'rgba(2, 117, 216, 0.31)',
              tension:0.4,
          }
      ],
    }
/*previous code */
    this.basicOptions = {
     scales: {
       y: {
         ticks: {
           min: '0'
          },
        }
      }
  };
  } */

/*correct code*/
this.basicOptions = {
        scales: {
          yAxes: [{
            ticks: {
              min: 0,
              max: 40
            }
          }]
        }
    };

}```

您在使用 v2 时使用了 v3 语法,这是行不通的,您需要在单个数组中声明所有 y 轴,在单个数组中声明所有 x 轴,有关更多信息,请查看 v2 documentation .

示例:

var options = {
  type: 'line',
  data: {
    labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
    datasets: [{
      label: '# of Votes',
      data: [12, 19, 3, 5, 2, 3],
      borderColor: 'pink',
      fill: false
    }]
  },
  options: {
    scales: {
      yAxes: [{
        ticks: {
          min: 0,
          max: 40
        }
      }]
    }
  }
}

var ctx = document.getElementById('chartJSContainer').getContext('2d');
new Chart(ctx, options);
<body>
  <canvas id="chartJSContainer" width="600" height="400"></canvas>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.js"></script>
</body>