目前优秀的图表库非常多,比如eCharts、highChart等,但大多都是适合静态的数据展示,当面对需要持续更新数据的场景(比如监控数据、数据投屏面板),大多采用重绘的方式,容易造成卡顿。开发dc的目的就是为了应对这种场景,使数据的切换更加的平滑、流畅。
npm install xzs-chart
初始化饼图。
dom
可以为querySelector
,也可以是原生dom对象。width
为图表宽度,默认400
。height
为图表高度,默认400
。
更新数据。
data
- 形式为[{title:'数据1',data:100}]
,title
作为饼图的文本,并为数据的key,data
是展示的数据
import chart from 'xzs-chart'
var update = chart.createCircle('#content',500,500)
update([
{title:"数据1数据1",data:100},
{title:"数据2",data:200},
{title:"数据3",data:300},
{title:"数据4",data:400},
{title:"数据5",data:250},
{title:"数据6",data:300}
])
window.setTimeout(()=>{
update([
{title:"数据1",data:150},
{title:"数据2",data:660},
{title:"数据3",data:300},
{title:"数据4",data:460},
{title:"数据5",data:150},
{title:'数据6',data:300},
{title:'数据7',data:500}
])
},2000)
window.setTimeout(()=>{
update([
{title:"数据1",data:150},
{title:"数据2",data:660},
{title:"数据3",data:300},
{title:"数据4",data:460},
{title:"数据5",data:150}
])
},4000)
初始化仪表盘
content
-dom
可以为querySelector
,也可以是原生dom对象。width
: 图表宽度,默认400。height
: 图表长度,默认400。maxNum
: 最大值,默认100。unit
: 数据单位,默认%。title
: 图表的标题。during
: 切换动画的持续时间
num
- 更新的数据
import chart from 'xzs-chart'
var maxNum = 100
var update = chart.createDashBoard('#content',400,400,maxNum)
window.setInterval(()=>{
update(parseInt(Math.random()*maxNum))
},2000)
初始化柱状图
content
-dom
可以为querySelector
,也可以是原生dom对象。width
: 图表宽度,默认400。height
: 图表长度,默认400。maxNum
: 最大值,默认100。during
: 切换动画的持续时间
arr
- 形式为[{title:'数据1',data:100}]
,title
作为饼图的文本,并为数据的key,arr
是展示的数据
import chart from 'xzs-chart'
var update = chart.createColumnar('#content',800,500)
var d = [
{title:"数据1",data:100},
{title:"数据2",data:200},
{title:"数据3",data:300},
{title:"数据4",data:400},
{title:"数据5",data:250},
{title:"数据6",data:300}
]
var i = 6
var maxNum = 3000
window.setInterval(()=>{
d.shift()
d.push({title:`数据${i++}`,data:(maxNum*Math.random()).toFixed(2)})
update(d)
},4000)