xCharts - JavaScript 图表库 - 开源中国
xCharts 是一个使用 D3.js 来构建漂亮的可定制的数据驱动的 JavaScript 图表库,他使用HTML,CSS,SVG实现图表,xCharts 被设计为一个动态的、流畅的、开放的和可定制化的库。
下面是演示效果:
HTML :
12345678910111213<
html
>
<
script
id
=
"others_zepto_10rc1"
type
=
"text/javascript"
class
=
"library"
src
=
"/js/sandbox/other/zepto.min.js"
></
script
>
<
body
>
<
figure
style
=
"height: 300px"
id
=
"chart"
>
</
figure
>
<
p
>
</
p
>
</
body
>
</
html
>
JavaScript :
1234567891011121314151617181920212223242526272829303132333435363738394041(
function
() {
var
data = [{
"xScale"
:
"ordinal"
,
"comp"
:[],
"main"
:[{
"className"
:
".main.l1"
,
"data"
:[{
"y"
:15,
"x"
:
"2012-11-19T00:00:00"
},{
"y"
:11,
"x"
:
"2012-11-20T00:00:00"
},{
"y"
:8,
"x"
:
"2012-11-21T00:00:00"
},{
"y"
:10,
"x"
:
"2012-11-22T00:00:00"
},{
"y"
:1,
"x"
:
"2012-11-23T00:00:00"
},{
"y"
:6,
"x"
:
"2012-11-24T00:00:00"
},{
"y"
:8,
"x"
:
"2012-11-25T00:00:00"
}]},{
"className"
:
".main.l2"
,
"data"
:[{
"y"
:29,
"x"
:
"2012-11-19T00:00:00"
},{
"y"
:33,
"x"
:
"2012-11-20T00:00:00"
},{
"y"
:13,
"x"
:
"2012-11-21T00:00:00"
},{
"y"
:16,
"x"
:
"2012-11-22T00:00:00"
},{
"y"
:7,
"x"
:
"2012-11-23T00:00:00"
},{
"y"
:18,
"x"
:
"2012-11-24T00:00:00"
},{
"y"
:8,
"x"
:
"2012-11-25T00:00:00"
}]}],
"type"
:
"line-dotted"
,
"yScale"
:
"linear"
},{
"xScale"
:
"ordinal"
,
"comp"
:[],
"main"
:[{
"className"
:
".main.l1"
,
"data"
:[{
"y"
:12,
"x"
:
"2012-11-19T00:00:00"
},{
"y"
:18,
"x"
:
"2012-11-20T00:00:00"
},{
"y"
:8,
"x"
:
"2012-11-21T00:00:00"
},{
"y"
:7,
"x"
:
"2012-11-22T00:00:00"
},{
"y"
:6,
"x"
:
"2012-11-23T00:00:00"
},{
"y"
:12,
"x"
:
"2012-11-24T00:00:00"
},{
"y"
:8,
"x"
:
"2012-11-25T00:00:00"
}]},{
"className"
:
".main.l2"
,
"data"
:[{
"y"
:29,
"x"
:
"2012-11-19T00:00:00"
},{
"y"
:33,
"x"
:
"2012-11-20T00:00:00"
},{
"y"
:13,
"x"
:
"2012-11-21T00:00:00"
},{
"y"
:16,
"x"
:
"2012-11-22T00:00:00"
},{
"y"
:7,
"x"
:
"2012-11-23T00:00:00"
},{
"y"
:18,
"x"
:
"2012-11-24T00:00:00"
},{
"y"
:8,
"x"
:
"2012-11-25T00:00:00"
}]}],
"type"
:
"cumulative"
,
"yScale"
:
"linear"
},{
"xScale"
:
"ordinal"
,
"comp"
:[],
"main"
:[{
"className"
:
".main.l1"
,
"data"
:[{
"y"
:12,
"x"
:
"2012-11-19T00:00:00"
},{
"y"
:18,
"x"
:
"2012-11-20T00:00:00"
},{
"y"
:8,
"x"
:
"2012-11-21T00:00:00"
},{
"y"
:7,
"x"
:
"2012-11-22T00:00:00"
},{
"y"
:6,
"x"
:
"2012-11-23T00:00:00"
},{
"y"
:12,
"x"
:
"2012-11-24T00:00:00"
},{
"y"
:8,
"x"
:
"2012-11-25T00:00:00"
}]},{
"className"
:
".main.l2"
,
"data"
:[{
"y"
:29,
"x"
:
"2012-11-19T00:00:00"
},{
"y"
:33,
"x"
:
"2012-11-20T00:00:00"
},{
"y"
:13,
"x"
:
"2012-11-21T00:00:00"
},{
"y"
:16,
"x"
:
"2012-11-22T00:00:00"
},{
"y"
:7,
"x"
:
"2012-11-23T00:00:00"
},{
"y"
:18,
"x"
:
"2012-11-24T00:00:00"
},{
"y"
:8,
"x"
:
"2012-11-25T00:00:00"
}]}],
"type"
:
"bar"
,
"yScale"
:
"linear"
}];
var
order = [0, 1, 0, 2],
i = 0,
xFormat = d3.time.format(
'%A'
),
chart =
new
xChart(
'line-dotted'
, data[order[i]],
'#chart'
, {
axisPaddingTop: 5,
dataFormatX:
function
(x) {
return
new
Date(x);
},
tickFormatX:
function
(x) {
return
xFormat(x);
},
timing: 1250
}),
rotateTimer,
toggles = d3.selectAll(
'.multi button'
),
t = 3500;
function
updateChart(i) {
var
d = data[i];
chart.setData(d);
toggles.classed(
'toggled'
,
function
() {
return
(d3.select(
this
).attr(
'data-type'
) === d.type);
});
return
d;
}
toggles.on(
'click'
,
function
(d, i) {
clearTimeout(rotateTimer);
updateChart(i);
});
function
rotateChart() {
i += 1;
i = (i >= order.length) ? 0 : i;
var
d = updateChart(order[i]);
rotateTimer = setTimeout(rotateChart, t);
}
rotateTimer = setTimeout(rotateChart, t);
}());
CSS :
123p{
color
:
white
;
}
Powered By RunJS