Javascript 在chart.js中绘制没有间隙的线性图表
我想画一张货币汇率的线性图表。有时市场上没有价格(节假日)。我想从图表中删除这些天,但在有利率的日子之间没有难看的差距或直线 您可以在此图表上看到一个示例: 5月3日没有数据,图表被链接,缺少的日期从图例中删除Javascript 在chart.js中绘制没有间隙的线性图表,javascript,charts,chart.js,chart.js2,Javascript,Charts,Chart.js,Chart.js2,我想画一张货币汇率的线性图表。有时市场上没有价格(节假日)。我想从图表中删除这些天,但在有利率的日子之间没有难看的差距或直线 您可以在此图表上看到一个示例: 5月3日没有数据,图表被链接,缺少的日期从图例中删除 如何使用Chart.js获得这样的效果?我找到了一个解决方法。它需要一些黑客攻击,但它是有效的: 1) 首先,修改数据集。迭代所有的点并改变x值,使它们对应于图表上的新位置。将原始x值保存在某些属性中以备将来使用(在工具提示中) 2) 现在你可以在图表上画出数据,它们看起来很正常。问题
如何使用Chart.js获得这样的效果?我找到了一个解决方法。它需要一些黑客攻击,但它是有效的: 1) 首先,修改数据集。迭代所有的点并改变x值,使它们对应于图表上的新位置。将原始x值保存在某些属性中以备将来使用(在工具提示中) 2) 现在你可以在图表上画出数据,它们看起来很正常。问题在于工具提示和记号 如何处理滴答声: 勾号是一组变异数字(它们与原始值不对应)。你有一个黑客。在
afterBuildTicks
方法中,使用具有原始对应x值的对象数组(而不是普通数字)临时覆盖chartController.ticks。对于每个刻度,必须近似原始x值。
这样,您就可以在ticks回调中使用此信息来返回正确的ticks标签。
有了这些变异的数据,图表就无法绘制了。你必须把它恢复到变异前的状态。在方法afterTickToLabelConversion
中,恢复刻度。请记住,现在它们存储在属性ticksambers
类似的破解应该通过工具提示回调来完成。您可以访问数据集和utated x值。突变x的近似原始x值就是这样。您可以使用spanGap属性。从: 如果[spanGaps设置为]true,则将在点之间绘制直线 没有或空数据。如果为false,则具有NaN数据的点将创建一个 插队
这可能是重复的:@DonnyBridgen这个问题实际上是在问与之相关的问题相反的问题。这个问题是问如何创造差距。这个问题是问如何避免漏洞。@ArturOwczarek您是否有一个JSFIDLE和您当前使用的代码可以共享?