Dygraph 模拟柱状图的绘制
在 Dygraph
中,如果我们想展示竖线的时候,我们应该怎么做呢?
一开始,想着直接手动 canvas
绘图?但是跟 Dygraph
上的默认行为,比如 hover
要做适配,很是麻烦。那么 Dygraph
中就没有实现的方法了?
直到我看到了官网中案例图:
呀呀呀~ 我们调整下数据结构,看看能否实现。
let data = [
[new Date('2023-01-01'), 1],
[new Date('2023-01-01'), 0],
[new Date('2023-01-01'), null],
[new Date('2023-02-01'), 2],
[new Date('2023-02-01'), 0],
[new Date('2023-02-01'), null],
[new Date('2023-04-01'), 3],
[new Date('2023-04-01'), 0],
[new Date('2023-04-01'), null]
];
如果我们更改下数据结构呢?比如:
let data = [
[new Date('2023-01-01'), null],
[new Date('2023-01-01'), 1],
[new Date('2023-01-01'), 0],
[new Date('2023-02-01'), null],
[new Date('2023-02-01'), 2],
[new Date('2023-02-01'), 0],
[new Date('2023-04-01'), null],
[new Date('2023-04-01'), 3],
[new Date('2023-04-01'), 0]
];
将 null
提前,不行。阻断了 hover
的读数行为~
既然可以通过整合数据来达到绘制竖线的效果,那么,我们就可以通过控制 strokeWidth
参数模拟柱形图的宽度。比如:
new Dygraph(dom, data, {
strokeWidth: 10
});
还不错。然后我们根据需求再美化下。比如俺实现的效果:
参考
转载自:https://juejin.cn/post/7259605860604018743