enter image description here

如何关闭带有我在截图中突出显示的0到45000的附加标记的刻度?我已经试过了所有可能的方法. 似乎可以将chartjs更新到最新版本,但我感兴趣的是在版本3.7.1中纠正该行为的可能性 还有一个问题是,在最上面的点上,该点的值为100的标签被100%切断,直到我也找到了修复它的方法.

选项:

export const chart选项: ICustomChartOptions = {
  responsive: true,
  layout: {},
  elements: {
    bar: {
      borderRadius: 4,
    },
    line: {
      borderWidth: 3,
    },
    point: {
      backgroundColor: '#FFFFFF',
      borderWidth: 2,
      radius: 4,
    },
  },
  clip: false,
  scales: {
    x: {
      grid: {
        display: false,
      },
      ticks: {
        font: {
          size: 10,
        },
      },
      min: 0,
      max: 100000,
    },
    y: {
      position: 'left',
      grid: {
        drawBorder: false,
      },
      ticks: {
        callback: function (value) {
          return `${value}%`;
        },
        stepSize: 25,
        font: {
          size: 10,
        },
      },
      min: 0,
      max: 100,
      beginAtZero: true,
    },
  },
  plugins: {},
};

更新:这是图表的数据

export const chartData: ChartData<'line'> = {
  labels: chartLabels,
  datasets: [
    {
      type: 'line',
      // yAxisID: 'line',
      data: [100, 20, 49, 10, 97],
      order: 1,
      datalabels: {
        anchor: 'start',
        align: 'end',
        color: color['Purple/Purple 80'],
        formatter(value) {
          return `${value}%`;
        },
      },
    },
    {
      type: 'bar' as 'line',
      yAxisID: 'bar',
      data: [22000, 17500, 12000, 10000, 44000],
      order: 2,
      datalabels: {
        align: 'end',
      },
    },
  ],
};

UPD 2个 对于显示值,我使用ChartDataLabels

推荐答案

没有数据,人们不能确定第二个轴是怎么来的,但我假设它是mixed charttype: "bar"部分的轴.因此,数据可能是这样的(我将省略输入,因为这太不精确了):

const data = {
   labels: [....],
   datasets: [
       {
          type: "line",
          label: "....",
          data: [.....]
       },
       {
          type: "bar",
          label: "....",
          data: [.....]
       },
   ]
}

在这种情况下,您必须为这两个部分设置y axes ids,并在选项集display: false中设置您不想显示的轴:

const data = {
   labels: [....],
   datasets: [
       {
          type: "line",
          label: "....",
          data: [.....],
          yAxisID: "y"
       },
       {
          type: "bar",
          label: "....",
          data: [.....],
          yAxisID: "y2"
       }
   ]
};

const chartOptions = {
   //....... other options
   scales:{
      x: { 
         // .... options for the x axis
      },
      y: { 
         // .... options for the y axis 
      },
      y2:{
         display: false,
         // ... other y2 options, if any
      }
   }
}

以下是一个代码片段,其中包含执行此操作的最小版本的代码:

const data = {
    labels: ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
    datasets: [
        {
            label: 'lines',
            data: [100, 20, 40, 50, 90, 44, 29],
            type: 'line',
            order: 1,
            yAxisID: 'y'
        },
        {
            label: 'bars',
            data: [10009, 2000, 4000, 5000, 9000, 4400, 2900],
            type: 'bar',
            order: 0,
            yAxisID: 'y2'
        }
    ]
};

const options = {
    scales:{
        y: {
            beginAtZero: false,
            //grace: "2%"
        },
        y2: {
            display: false,
        }
    },
    layout: {
        padding: {top: 10} // to fit the label
    }
}
new Chart(document.getElementById('chart1'), {data, options});
<div style="height: 100%; width:100%">
<canvas id="chart1"  style="height: 90vh; width:95vw"></canvas>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.7.1/chart.min.js" integrity="sha512-QSkVNOCYLtj73J4hbmVoOV6KVZuMluZlioC+trLpewV8qMjsWqlIQvkn1KGX2StWvPMdWGBqim1xlC8krl1EKQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

至于标签的贴合,我们也不知道你是如何添加的.您可以try :

  • options.layout.padding.top docs link(见上例),
  • options.scales.y.grace docs link(在上例中注明)
  • 或者根据数据简单地增加y级的最大值(max).

Javascript相关问答推荐

为什么getRecord()会因为与_logger相关的错误而失败?(使用Hedera SDK)

可以的.是否可以在不预编译的情况下使用嵌套 Select 器?

Redux查询多个数据库Api reducerPath&

将现场录音发送到后端

将旋转的矩形zoom 到覆盖它所需的最小尺寸&S容器

简单的PayPal按钮集成导致404错误

Html文件和客户端存储的相关问题,有没有可能?

我在Django中的视图中遇到多值键错误

以Angular 实现ng-Circle-Progress时出错:模块没有导出的成员

如何在JAVASCRIPT中临时删除eventListener?

使用类型:assets资源 /资源&时,webpack的配置对象&无效

如何访问此数组中的值?

使用自动识别发出信号(&Q)

不同表的条件API端点Reaction-redux

AG-GRIDreact 显示布尔值而不是复选框

如何在Reaction中清除输入字段

如何使用Reaction路由导航测试挂钩?

设置复选框根据选中状态输入选中值

为什么当雪碧的S在另一个函数中时,Phaser不能加载它?

不允许在对象文本中注释掉的属性