如何使该行从中间开始而不是从列的开头开始?

问题描述 投票:0回答:1

我正在使用 chartjs (v3) (以及要集成的react-chartjs)创建折线图,并且我在自定义从第一列中间开始的线(并且也完成)时遇到了一些糟糕的情况在最后一列的中间),因为第一列将始终处于 zero Y 位置,这样使得该行从最左边开始。 所以我需要弄清楚如何使线条标记在列的中间而不是边框。

这是我得到的结果:

what I have

我需要这样的东西:

what I need

我的配置:

<Line
  data={data}
  height={440}
  width={480}
  options={{
    ...options,
    scales: {
      x: {
        grid: {
          color(context) {
            if (context.tick.value === 0) return '#B3B3B3';

            return '#E6E6E6';
          },
          tickWidth: 0,
          lineWidth: 1,
        },
        border: {
          dash(context) {
            if (context.tick.value === 0) return [0];

            return [5, 5];
          },
          width: 0,
        },
        ticks: {
          display: false,
        },
      },
      y: {
        grid: {
          color(context) {
            if ([0, 30, 70].includes(context.tick.value)) {
              return '#B3B3B3';
            }

            return '#E6E6E6';
          },
          lineWidth(context) {
            if ([30, 70].includes(context.tick.value)) {
              return 2;
            }

            return 1;
          },
          tickWidth: 0,
        },
        border: {
          dash(context) {
            if (context.tick.value === 0) return [0];

            return [5, 5];
          },
          width: 1,
        },
        min: 0,
        max: 100,
        ticks: {
          font: {
            weight: 'bold',
            size: 10,
            family: 'Open Sans',
          },
          color: '#000000',
        },
      },
    },
    animation: false,
    plugins: {
      legend: {
        display: false,
      },
      tooltip: {
        enabled: false,
      },
    },
  }}
/>
typescript chart.js react-chartjs linegraph
1个回答
0
投票
...      

      options: {
            scales: {
                x: {
                    type: 'linear', // Use linear scale for x-axis
                    ticks: {
                        stepSize: 0, // Set step size to 1
                        precision: 0
                        // No decimal places
                    }
                },
                y: {
                    ticks: {
                        stepSize: 1, // Set step size to 1
                        precision: 0 // No decimal places
                    }
                }
            },
...
© www.soinside.com 2019 - 2024. All rights reserved.