javascript - Chart.js。取值范围很大。最小值不可用

标签 javascript math chart.js

我使用 Chart.js ( http://www.chartjs.org ) 使用条形图显示不同单位的流量使用情况。如果我有很大的使用范围(1个单位2.5GB,2个单位2.5MB,3个单位2.5kB,4个单位0B),当将它们设置为一个值时,最小值不可用(我无法将鼠标悬停在它们上或单击它们),例如转换为 GB (2.5,0.0024,2.38E-6,...,0) 或 MB (2560,2.5,0.0024,...,0)。请提供所有想法如何将它们显示在一张图表上以保持比例以及单击并悬停在每个条形上的能力(甚至 0)

提前致谢

最佳答案

ability to click and hover over on each Bar

不幸的是,条形图没有等效的 pointHitDetectionRadius。但您可以覆盖 Chart.Rectangle 的 inRange 函数,以提供更多的垂直检测范围。

Chart.Rectangle.prototype.inRange = function (chartX, chartY) {
    return (chartX >= this.x - this.width / 2 && chartX <= this.x + this.width / 2) && (chartY >= this.y && chartY <= (this.base + 5));
};

我已将垂直区域从 x 轴向下延伸了 5 个单位,但您也可以将其更改为轴上方(只需从 this.y 中减去它)

fiddle - https://jsfiddle.net/etLfr9ka/

Please all ideas how to display them on one chart

只要您不将 barShowStroke 设置为 false,您甚至会看到 0 值的笔画。

另一种选择是选择一个支持对数刻度的框架,或者一个允许您将 y 刻度分割成多个部分的框架 - 但在我看来,这将是一个坏主意。

关于javascript - Chart.js。取值范围很大。最小值不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30816579/

相关文章:

math - float 学有问题吗?

math - 哪种度量表明数据平滑变化?

javascript - 如何在调整窗口大小时保持 chartjs/ng2-charts 渐变?

javascript - 更改雷达图js的标签颜色

javascript - jQuery - 选择更改事件会导致选择框在 IE10 和 FF 中立即再次关闭

javascript - `this` 在 json 回调中是不可见的吗?

javascript - 如果输入框内容发生更改并且未按下按钮,如何显示警报消息?

javascript - Js对象属性未被修改

java - 评级文章 - 情绪分析

javascript - Chart.js 条形图 - 分组和映射数据