Chart.js (v2.9.4)--如何像高版本一样支持skipNull

这篇具有很好参考价值的文章主要介绍了Chart.js (v2.9.4)--如何像高版本一样支持skipNull。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目开发中,用到Chart.js展示图表,用起来也非常方便,配置很灵活,很好用,给个数据集,设置一些配置值,实例化一个Chart出来,图表就非常丝滑地展现出来了。

但是作为开发人员都知道的一个真理,永远不变的就是变化,永远无理的都是客户的需求。

很不幸,我就撞到这么一个的需求:“把那些值为0的数据集,从chart图表中移除,碍眼”。

Chart.js (v2.9.4)--如何像高版本一样支持skipNull

baidu和bing这一顿疯狂搜索,好嘛,v2版本的Chart.js根本不支持这个功能,升级到高版本,也有点麻烦,因为V3以上的版本,并不是完全向前兼容。

解决问题的方法就是:Chart.js是开源的,可以看源码,通过修改代码,来满足这个需求,以下是修改源码满足需求的详细过程:

用notepad++打开v2.9.4版本的chart.js(公司现在用的就是这个版本), 最好用notepad++的jsTool插件工具格式化一下,代码有点乱。

1,定位到 4970行的computeFitCategoryTraits()函数,添加一个参数 strackCount,然后在4972行,改成var count = strackCount || ruler.stackCount; 如下图示:

Chart.js (v2.9.4)--如何像高版本一样支持skipNull

2,定位到5141行的getStacks函数,添加一个dataIndex参数,然后插入5153~5158这个几行新代码,

Chart.js (v2.9.4)--如何像高版本一样支持skipNull

3 定位到5179行的getStackCount函数,新增dataIndex参数,再给getStacks传递这个参数

Chart.js (v2.9.4)--如何像高版本一样支持skipNull

4 定位到5191行的getStackIndex函数,新增dataIndex参数,也是同样给getStacks传递这个新增的参数

Chart.js (v2.9.4)--如何像高版本一样支持skipNull

 5 定位到5249行的calculateBarIndexPixels函数,

   新增5296行的代码,这个skipNull的配置可以自定义到自己喜欢的配置项上,这里我是配置到了dataset集合,后面会说怎么配置。

   给computeFitCategoryTraits新增stackCount函数。

   给getStackIndex也新增一个参数,根据skipNull配置的值传递具体值。

Chart.js (v2.9.4)--如何像高版本一样支持skipNull

6,最后再dataset配置里新增skipNull配置项

Chart.js (v2.9.4)--如何像高版本一样支持skipNull

 最终的效果如下:

Chart.js (v2.9.4)--如何像高版本一样支持skipNull

 文章来源地址https://www.toymoban.com/news/detail-621679.html

需求是满足了,不过还有个问题,就是假如项目用的是chart.js的min压缩版,咋整,这个压缩的代码可不好改啊,不要急,chart.js开放出来的可扩展性和可自定义性,丰富到令人发指.

方法如下:

Chart.js (v2.9.4)--如何像高版本一样支持skipNull

 在实例化出Chart(),之前,把上面几个步骤说到那几个要改动的函数,全部复制到这里,重新实现一次,覆盖原来的, 一样可以实现想要的效果。

 

到了这里,关于Chart.js (v2.9.4)--如何像高版本一样支持skipNull的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • realsense-viewer 不识别 T265——Realsense SDK 在 v2.54.1 版本以后不再支持T265相机的解决办法

    由于T265停产,Intel® RealSense™ SDK 2.0 (v2.54.1) 在该版本中移除了对T265相机的支持,以后的版本也不会支持了。为了继续使用 T265 相机,最好千万不要升级 realsense 相关的 package,但是还有新装机的需求啊。经测试Intel® RealSense™ SDK 2.0 (v2.53.1) 能对 T265 正常支持,因此,本文主要

    2024年02月15日
    浏览(35)
  • 魔众智能AI系统v2.1.0版本支持主流大模型(讯飞星火、文心一言、通义千问、腾讯混元、Azure、MiniMax、Gemini)

    支持主流大模型(讯飞星火、文心一言、通义千问、腾讯混元、Azure、MiniMax、Gemini) [新功能] 系统全局消息提示 UI 全新优化 [新功能] JS 库增加【ijs】类型字符串,支持默认可执行代码 [新功能] 分类快捷操作工具类 CategoryUtil [新功能] 支持主流大模型(讯飞星火、文心一言、

    2024年03月18日
    浏览(40)
  • ubuntu下gcc/g++版本升级到指定版本(g++9.4为例)

    Ubuntu自带g++/gcc版本不符合需求时需要升级g++/gcc版本。 以下以gcc/g++ 9为例: 输入命令行: 执行完毕后再输入: 接着进入/usr/bin目录下删除旧版本gcc/g++文件: 最后再将gcc/g++和新安装的gcc-9/g+±9关联起来: 此时查看gcc版本: 即可看到此时gcc版本已为新安装的9.4。

    2024年02月15日
    浏览(50)
  • CentOS7升级SSH最新版本(9.4p1)详细步骤

    目录 引言 当前操作系统情况 第一步:下载SSH和SSL安装包 第二步:安装配置Telnet(防止ssh安装失败无法连接) 1、安装Telnet 2、运行Telnet服务 3、移除文件 4、使用Telnet远程连接 第三步:卸载旧版本SSH 第四步:安装依赖包 第五步:升级SSL 1、解压源码包  2、进入源码包执行

    2024年02月04日
    浏览(55)
  • 如何像正常使用ROS一样使用Docker ROS?Ubuntu22.04在docker中安装noetic版本ROS

    自从买了新电脑,遇到的麻烦接连不断。先是安装Ubuntu系统安装不上,安装完成之后网卡、触控板等硬件都没有打上驱动,折腾了老半天,把ubuntu的内核升级到了Ubuntu20.04所支持的最高版本,然而还是没有解决驱动的问题,遂一气之下将系统升级为了Ubuntu22.04,这一次安装完系

    2024年04月17日
    浏览(48)
  • 爬虫小白-如何调试列表页链接与详情链接不一样并三种方式js逆向解决AES-ECB

    一、网站分析 三年前的案例,我的原始文章 网站 ,如图我们直接点击标题进入到详情页,链接会发生跳转,且与我们在详情看到的链接,与在列表页看到的链接完全不一样,如果拿列表页的链接直接新建标签页打开的话,详情页也是403, 而只有触发点击的模式才能拿看到真

    2024年02月15日
    浏览(40)
  • 在Blazor中使用Chart.js

    首先,从Chart.js官方网站下载Chart.js库文件。 推荐下载这个构建好的版本https://cdnjs.com/libraries/Chart.js,最新版是 v4.2.1 在Blazor项目中把刚刚下载好的 Chart.js 放到wwwroot目录下。 在Blazor项目中的Pages文件夹下_Host.cshtml文件中添加以下代码: 在Blazor组件中使用Chart.js,需要在组件中

    2023年04月08日
    浏览(33)
  • Vue 3 中使用 Chart.js

    要在 Vue 3 中使用 Chart.js,您需要先安装和引入 Chart.js 库,并创建一个 Vue 组件来承载图表。 ‍ **

    2024年02月13日
    浏览(38)
  • OpenHarmony开发实战:switch、chart组件的使用(JS)

    本篇文章基于switch组件和chart组件,实现线形图、占比图、柱状图,并通过switch切换chart组件数据的动静态显示。要求实现以下功能: 实现静态数据可视化图表。 打开开关,实现静态图切换为动态可视化图表。 相关概念 switch组件:开关选择器,通过开关,开启或关闭某个功

    2024年04月11日
    浏览(77)
  • linux如何查看编译器支持的C++版本(支持C++11、支持C++14、支持C++17、支持C++20)(编译时不指定g++版本,默认使用老版本编译)

    C++11 C++11是一个重要的C++标准版本,于2011年发布。C++11带来了许多重要的改进,包括: 智能指针:引入了shared_ptr和unique_ptr等智能指针,用于更好地管理动态内存分配。 新的循环语句:引入了for循环中的范围语法,以更简洁的方式遍历容器。 初始化列表:允许使用初始化列表

    2024年02月02日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包