在Chart.js图形中设置最大、最小和步长值

在Chart.js图形中设置最大、最小和步长值,chart.js,Chart.js,我试图为我的Chart.jsgraph指定最大、最小和步长值 有人能解释一下为什么下面的代码会生成这个图吗 我特别写: max: 12, min: 0, stepSize: 1.0, 所以我不知道为什么我的设置会被忽略 任何帮助都将不胜感激 谢谢 代码 <canvas id="h-t"></canvas> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.

我试图为我的
Chart.js
graph指定最大、最小和步长值

有人能解释一下为什么下面的代码会生成这个图吗

我特别写:

max: 12,
min: 0,
stepSize: 1.0,
所以我不知道为什么我的设置会被忽略

任何帮助都将不胜感激

谢谢

代码

<canvas id="h-t"></canvas>

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<script src="https://d3js.org/d3.v5.min.js"></script>

<script>
    d3.csv('h.csv')
      .then(makeChart);

    function makeChart(hdata) {
        var t = hdata.map(function(d) {return d.t});
        var h = hdata.map(function(d) {return d.h});        
        var chart = new Chart('h-t', {
          type: 'line',
          data: {
            labels: t,
            datasets: [
              {
                data: h,
                backgroundColor: '#2a54a9',
                borderColor: '#2a54a9',
                fill: false,
//              pointRadius: 10,
//              pointHoverRadius: 15,
                showLine: false // no line shown
              }
            ]
          },
          options: {
              scales: {
                  xAxes: [{
                      gridLines: {
                          drawOnChartArea: false,
                          color: "#111111" 
                      },
                      afterFit: function(scale) {
                          scale.height = 80  //<-- set value as you wish 
                      },
                      scaleLabel: {
                          display: true,
                          labelString: 'Tiempo (min)',
                          fontSize: 18,
//                        fontFamily: 'Cabin Sketch',
                          fontColor: '#111111'
                      },
                      ticks: {
                          fontSize: 16,
//                            fontFamily: 'EB Garamond',
                          fontColor: '#111111',
                          max: 12,
                          min: 0,
                          stepSize: 1.0,
                          padding: 10
                      }
                  }],
                  yAxes: [{
                      gridLines: {
                          drawOnChartArea: false,
                          color: "#111111"                        
                      },
                      scaleLabel: {
                          display: true,
                          labelString: 'Altitud (km)',
                          fontSize: 18,
//                            fontFamily: 'Cabin Sketch',
                          fontColor: '#111111'                        
                      },
                      ticks: {
                          beginAtZero: true,
                          fontSize: 16,
//                            fontFamily: 'EB Garamond',
                          fontColor: '#111111',
                          padding: 10,
                          stepSize: 50,                       
                          suggestedMax: 250,
                          suggestedMin: 0
                      }
                  }]
                
              },
              legend: {
                display: false                    
              },              
           }
        });
    }       
</script>

问题是,您已经用标签
构建了折线图的X轴,这些标签是分类的,而不是数字的

要将数字范围应用于X轴,需要执行两项操作:

  • 设置xAxis
    类型:“线性”
  • dataset.data
    更改为
    {x,y}
    坐标
换句话说,传递给Chart.js的
数据必须如下所示:

[
{x:0,y:0},
{x:0.26,y:0.4},
{x:0.43,y:1.2},
...
]
我已经修改了下面的示例,以在实际操作中显示这一点,包括X轴范围从0到12。下面是它的样子:

这是修改后的代码。请注意,我只是直接包含了您的数据,而不是使用D3:

const ctx=document.getElementById('myChart').getContext('2d');
常数系列=[
[0, 0],
[0.266666666666667, 0.4],
[0.433333333333333, 1.2],
[0.6, 2.5],
[0.766666666666667, 4.4],
[0.933333333333333, 6.8],
[1.1, 9.6],
[1.26666666666667, 12.8],
[1.43333333333333, 16.9],
[1.6, 22],
[1.76666666666667, 28.3],
[1.93333333333333, 35.7],
[2.1, 44.2],
[2.26666666666667, 53.9],
[2.43333333333333, 64.7],
[2.6, 76.4],
[2.76666666666667, 88.3],
[2.93333333333333, 100],
[3.1, 110],
[3.26666666666667, 121],
[3.43333333333333, 130],
[3.6, 139],
[3.76666666666667, 148],
[3.93333333333333, 156],
[4.1, 163],
[4.26666666666667, 169],
[4.43333333333333, 175],
[4.6, 180],
[4.76666666666667, 184],
[4.93333333333333, 188],
[5.1, 191],
[5.26666666666667, 194],
[5.43333333333333, 196],
[5.6, 198],
[5.76666666666667, 200],
[5.93333333333333, 200],
[6.1, 201],
[6.26666666666667, 201],
[6.43333333333333, 202],
[6.6, 201],
[6.76666666666667, 201],
[6.93333333333333, 201],
[7.1, 200],
[7.26666666666667, 200],
[7.43333333333333, 199],
[7.6, 199],
[7.76666666666667, 198],
[7.93333333333333, 198],
[8.1, 198],
[8.26666666666667, 198],
[8.43333333333333, 198],
[8.6, 197],
[8.76666666666667, 197],
[8.93333333333333, 198],
[9.1, 198],
[9.26666666666667, 198],
[9.43333333333333, 198],
[9.6, 198],
[9.76666666666667, 198],
[9.93333333333333, 199],
[10.1, 199],
[10.2666666666667, 199],
[10.4333333333333, 199],
[10.6, 199],
[10.7666666666667, 199],
[10.9333333333333, 200],
[11.1, 200],
[11.2666666666667, 200],
[11.4333333333333, 200],
[11.6, 200],
[11.7666666666667, 200],
[11.9333333333333, 201],
[12.1, 201],
];
新图表(ctx{
键入:“行”,
数据:{
数据集:[{
数据:series.map(数据=>({
x:基准面[0],
y:基准[1]
})),
背景颜色:“#2a54a9”,
边框颜色:“#2a54a9”,
填充:假,
//点半径:10,
//点半径:15,
showLine:false//未显示任何行
}]
},
选项:{
比例:{
xAxes:[{
类型:“线性”,
网格线:{
drawOnChartArea:错误,
颜色:“111111”
},
后装配:功能(比例){

scale.height=80/回答得很好-恭喜

对于那些感兴趣的人,这里的代码适用于最新的
chart.js
versionv3.2.1

(chart.jsv3.xxv2.xx不向后兼容)

而不是v2.9.3

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.js"></script>

现在v3.x

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>

(获取chart.js的最新版本(现在是v3.2.1)

const ctx=document.getElementById('myChart').getContext('2d');
常数系列=[
[0, 0],
[0.266666666666667, 0.4],
[0.433333333333333, 1.2],
[0.6, 2.5],
[0.766666666666667, 4.4],
[0.933333333333333, 6.8],
[1.1, 9.6],
[1.26666666666667, 12.8],
[1.43333333333333, 16.9],
[1.6, 22],
[1.76666666666667, 28.3],
[1.93333333333333, 35.7],
[2.1, 44.2],
[2.26666666666667, 53.9],
[2.43333333333333, 64.7],
[2.6, 76.4],
[2.76666666666667, 88.3],
[2.93333333333333, 100],
[3.1, 110],
[3.26666666666667, 121],
[3.43333333333333, 130],
[3.6, 139],
[3.76666666666667, 148],
[3.93333333333333, 156],
[4.1, 163],
[4.26666666666667, 169],
[4.43333333333333, 175],
[4.6, 180],
[4.76666666666667, 184],
[4.93333333333333, 188],
[5.1, 191],
[5.26666666666667, 194],
[5.43333333333333, 196],
[5.6, 198],
[5.76666666666667, 200],
[5.93333333333333, 200],
[6.1, 201],
[6.26666666666667, 201],
[6.43333333333333, 202],
[6.6, 201],
[6.76666666666667, 201],
[6.93333333333333, 201],
[7.1, 200],
[7.26666666666667, 200],
[7.43333333333333, 199],
[7.6, 199],
[7.76666666666667, 198],
[7.93333333333333, 198],
[8.1, 198],
[8.26666666666667, 198],
[8.43333333333333, 198],
[8.6, 197],
[8.76666666666667, 197],
[8.93333333333333, 198],
[9.1, 198],
[9.26666666666667, 198],
[9.43333333333333, 198],
[9.6, 198],
[9.76666666666667, 198],
[9.93333333333333, 199],
[10.1, 199],
[10.2666666666667, 199],
[10.4333333333333, 199],
[10.6, 199],
[10.7666666666667, 199],
[10.9333333333333, 200],
[11.1, 200],
[11.2666666666667, 200],
[11.4333333333333, 200],
[11.6, 200],
[11.7666666666667, 200],
[11.9333333333333, 201],
[12.1, 201],
];
新图表(ctx{
键入:“行”,
数据:{
数据集:[{
数据:series.map(数据=>({
x:基准面[0],
y:基准[1]
})),
背景颜色:“#2a54a9”,
边框颜色:“#2a54a9”,
填充:假,
展示路线:错误
}]
},
op
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>