我在用图表做散射. 我声明所有的值,类型类别.

我想从天平上隐藏一些价值.

我的比例尺是:0、5、10、15等 我不想显示值5和15的标签.

我该怎么办?

谢谢

我只能隐藏所有的价值,但不能确定.

推荐答案

我相信您希望X轴显示Step Size=5的刻度,但希望隐藏这5、15、25等.

对于chartjs,要执行您想要的操作,您可以指定带有回调的记号,如下所示:

   ticks: {
             stepSize: 5, 
             callback: function(value, index, values) {
             return getCategoryLabel(value);
             }
           }

然后使用下面的回调函数(我已经使用余数(%)来计算),对于你的情况,if condition statement可以是if (value %5 ==0 && value %10 !=0) {....} else {....} :

  function getCategoryLabel(value) {
            if ( value %5 ==0 && value %10 !=0 ) {
                return '';
            } else {
                return value;
            }
        }

因此,完整的代码(Scatter示例)如下:

<div>
  <canvas id="myChart"></canvas>
</div>

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


<script>
        const canvas = document.getElementById('myChart');
        const ctx = canvas.getContext('2d');

        
        var chartData = {}; 

        var myChart = new Chart(ctx, {
            type: 'scatter', 
          data: {
            datasets: [{
              label: 'Test Scatter',

              data: [
              {x: 27,y: 6}, 
              {x: 25, y: 12}, 
              {x: 26,y: 5}, 
              {x: 24, y: 10}, 
              {x: 28,y: 7}, 
              {x: 29, y: 7}, 
              {x: 26,y: 6}, 
              {x: 24, y: 10}, 
              {x: 11,y: 3}, 
              {x: 18, y: 5}, 
              {x: 0,y: 10}, 
              {x: 10, y: 5}, 
              {x: 0.5,y: 5.5}],
               
               backgroundColor: ['red'], 
               borderWidth: 1
                }],
                
            },
            options: {
                scales: {

                    x: {
                       type: 'linear',
                       position: 'bottom',

                    ticks: {
                            stepSize: 5, 
                            callback: function(value, index, values) {
                                return getCategoryLabel(value);
                            }
                        }

                        },

                    y: {
                        beginAtZero: true,
                      
                    }

                },
                responsive: true, 
                maintainAspectRatio: true 
            }
        });

        function getCategoryLabel(value) {
            if ( value %5 ==0 && value %10 !=0 ) {
                return '';
            } else {
                return value;
            }
        }

        function updateChart(newData) {
            myChart.data.datasets[0].data = newData.allData;
            myChart.update();
        }


    </script>

查看结果:

enter image description here

注意:如果你想隐藏Y轴上的5,15,25,那么把刻度块放在scales y的内部>

Php相关问答推荐

根据类别在WooCommerce中添加库存数量后缀

PHP Perl正则表达式—URL前面没有等号和可能的单引号或双引号

Laravel迁移返回SQL错误,但SQL有效且工作正常

WooCommerce/WordPress:简单的产品属性显示

如何删除WordPress用户的个人资料描述或其他个人资料字段中的链接?

在内部API请求之后,在响应客户端之前,是否忘记了PHP中的Header()?

Laravel服务Provider 没有向服务类注入价值

在WooCommercestore 页面上显示库存产品属性的值

在WooCommerce循环中添加子类别和产品之间的分隔符

扩展 WooCommerce 类触发未捕获错误:未找到WC_Coupon类

以编程方式同步 WPML 翻译更改 Woocommerce 产品销售价格

使用 Spomky Labs JWT 框架中的 verifyWithKey 验证 id_token JWT 的签名需要 30 秒以上

根据支付网关选项更改 WooCommerce Checkout 上的立即付款按钮文本

PHP 中的 libgd 无法读取 Apache 配置中的 SetEnv GDFONTPATH

避免在 WooCommerce 中多次触发挂钩函数

跟踪通过 WooCommerce 分层定价表插件进行的购买

$_SERVER 超全局变量在 PHP 中是否保证可写?

我需要获取传递到这个数组中的数据,但我没有得到它,因为在 Laravel 中数组是这样出现的

构建 [Controller] 时目标 [Interface] 不可实例化

复杂的mysql查询问题