一. chart图表demo网址
二. 本文主要对面积对比图,扇形图,柱状图三大常见图进行介绍
效果图如下:
<span style="color: #0000ff"><</span><span style="color: #800000">div </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="instrument-panel"</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">div </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="panel-con"</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">div </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="panel-linear"</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">canvas </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="linear"</span><span style="color: #0000ff">></</span><span style="color: #800000">canvas</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">div </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="consumption"</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>-库存消耗<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">div </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="panel-other"</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">div </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="panel-pancake"</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">canvas </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="mountNode"</span><span style="color: #0000ff">></</span><span style="color: #800000">canvas</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">div </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="product-proportion"</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>-产品占比<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">div </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="panel-columnar"</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">canvas </span><span style="color: #ff0000">id</span><span style="color: #0000ff">="columnar"</span><span style="color: #0000ff">></</span><span style="color: #800000">canvas</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">div </span><span style="color: #ff0000">class</span><span style="color: #0000ff">="user-map"</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"><</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>-本月<a href="/tag/yonghu/" target="_blank" class="keywords">用户</a>示意图<span style="color: #0000ff"></</span><span style="color: #800000">p</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"></</span><span style="color: #800000">div</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"></</span><span style="color: #800000">body</span><span style="color: #0000ff">></span>
<span style="color: #0000ff"></
<span style="color: #800000">html<span style="color: #0000ff">>我们在html页面内加入三个画布标签canvas,插入面积对比图,扇形图,柱状图;
css代码:
width:<span style="color: #0000ff"> 90%;<span style="color: #ff0000">
height:<span style="color: #0000ff"> 720px;<span style="color: #ff0000">
display:<span style="color: #0000ff"> flex;<span style="color: #ff0000">
flex-direction:<span style="color: #0000ff"> column;<span style="color: #ff0000">
align-items:<span style="color: #0000ff"> center;<span style="color: #ff0000">
margin:<span style="color: #0000ff"> 65px 0px;
}<span style="color: #800000">
.instrument-panel .panel-con .panel-linear{<span style="color: #ff0000">
width:<span style="color: #0000ff"> 100%;<span style="color: #ff0000">
height:<span style="color: #0000ff"> 340px;<span style="color: #ff0000">
background-color:<span style="color: #0000ff"> #fff;<span style="color: #ff0000">
margin-bottom:<span style="color: #0000ff"> 40px;<span style="color: #ff0000">
display:<span style="color: #0000ff"> flex;<span style="color: #ff0000">
align-items:<span style="color: #0000ff"> center;<span style="color: #ff0000">
justify-content:<span style="color: #0000ff"> center;<span style="color: #ff0000">
position:<span style="color: #0000ff"> relative;
}<span style="color: #800000">
.panel-linear .consumption{<span style="color: #ff0000">
position:<span style="color: #0000ff"> absolute;<span style="color: #ff0000">
left:<span style="color: #0000ff"> 24px;<span style="color: #ff0000">
top:<span style="color: #0000ff"> 44px;<span style="color: #ff0000">
color:<span style="color: #0000ff"> #333;<span style="color: #ff0000">
font-size:<span style="color: #0000ff"> 18px;
}<span style="color: #800000">
.panel-linear canvas{<span style="color: #ff0000">
width:<span style="color: #0000ff"> 80%;<span style="color: #ff0000">
height:<span style="color: #0000ff"> 300px;
}<span style="color: #800000">
.instrument-panel .panel-con .panel-other{<span style="color: #ff0000">
width:<span style="color: #0000ff"> 100%;<span style="color: #ff0000">
height:<span style="color: #0000ff"> 340px;<span style="color: #ff0000">
display:<span style="color: #0000ff"> flex;<span style="color: #ff0000">
flex-direction:<span style="color: #0000ff"> row;<span style="color: #ff0000">
align-items:<span style="color: #0000ff"> center;<span style="color: #ff0000">
justify-content:<span style="color: #0000ff"> space-between;
}<span style="color: #800000">
.panel-con .panel-other .panel-pancake{<span style="color: #ff0000">
width:<span style="color: #0000ff"> 48.5%;<span style="color: #ff0000">
height:<span style="color: #0000ff"> 340px;<span style="color: #ff0000">
background-color:<span style="color: #0000ff"> #fff;<span style="color: #ff0000">
display:<span style="color: #0000ff"> flex;<span style="color: #ff0000">
align-items:<span style="color: #0000ff"> center;<span style="color: #ff0000">
justify-content:<span style="color: #0000ff"> center;<span style="color: #ff0000">
position:<span style="color: #0000ff"> relative;
}<span style="color: #800000">
.panel-pancake canvas{<span style="color: #ff0000">
width:<span style="color: #0000ff"> 70%;<span style="color: #ff0000">
height:<span style="color: #0000ff"> 340px;
}<span style="color: #800000">
.panel-pancake .product-proportion{<span style="color: #ff0000">
position:<span style="color: #0000ff"> absolute;<span style="color: #ff0000">
left:<span style="color: #0000ff"> 24px;<span style="color: #ff0000">
top:<span style="color: #0000ff"> 44px;<span style="color: #ff0000">
color:<span style="color: #0000ff"> #333;<span style="color: #ff0000">
font-size:<span style="color: #0000ff"> 18px;
}<span style="color: #800000">
.panel-con .panel-other .panel-columnar{<span style="color: #ff0000">
width:<span style="color: #0000ff"> 48.5%;<span style="color: #ff0000">
height:<span style="color: #0000ff"> 340px;<span style="color: #ff0000">
background-color:<span style="color: #0000ff"> #fff;<span style="color: #ff0000">
display:<span style="color: #0000ff"> flex;<span style="color: #ff0000">
align-items:<span style="color: #0000ff"> center;<span style="color: #ff0000">
justify-content:<span style="color: #0000ff"> center;<span style="color: #ff0000">
position:<span style="color: #0000ff"> relative;
}<span style="color: #800000">
.panel-columnar canvas{<span style="color: #ff0000">
width:<span style="color: #0000ff"> 70%;<span style="color: #ff0000">
height:<span style="color: #0000ff"> 220px;<span style="color: #ff0000">
margin-top:<span style="color: #0000ff"> 40px;
}<span style="color: #800000">
.panel-columnar .user-map{<span style="color: #ff0000">
position:<span style="color: #0000ff"> absolute;<span style="color: #ff0000">
left:<span style="color: #0000ff"> 24px;<span style="color: #ff0000">
top:<span style="color: #0000ff"> 44px;<span style="color: #ff0000">
color:<span style="color: #0000ff"> #333;<span style="color: #ff0000">
font-size:<span style="color: #0000ff"> 18px;
}
重点来了,我们使用ajax接口数据实时监测数据的变化,并呈现在图表上面
三. 接口数据形式
2.扇形图:
3.柱状图:
js代码:
</span><span style="color: #0000ff">var</span> sellerId = getCookie("sellerId"<span style="color: #000000">);
</span><span style="color: #0000ff">var</span> sellerId =<span style="color: #000000"> {
</span>"sellerId"<span style="color: #000000">: sellerId,}
$.ajax({
url: </span>"https://www.xxxxxx.cn/xxxxx/xxxxx/",<span style="color: #008000">//</span><span style="color: #008000">15天<a href="/tag/xinyonghu/" target="_blank" class="keywords">新用户</a><a href="/tag/tongji/" target="_blank" class="keywords">统计</a></span>
<span style="color: #000000"> data: sellerId,type:
"get"<span style="color: #000000">,success: <span style="color: #0000ff">function<span style="color: #000000">(data) { </span><span style="color: #0000ff">var</span> newclient =<span style="color: #000000"> JSON.parse(data).result;
<span style="color: #008000">//<span style="color: #008000"> console.log(newclient);
<span style="color: #0000ff">for</span>(<span style="color: #0000ff">var</span> i=0;i<newclient.length;i++<span style="color: #000000">){
newclient[i].creatTime</span>=newclient[i].creatTime.slice(0,10<span style="color: #000000">);
newclient[i].goodsId</span>=(newclient[i].goodsId+'').replace('1','格林童话'<span style="color: #000000">);
newclient[i].goodsId</span>=(newclient[i].goodsId+'').replace('2','阿里巴巴与四十大盗'<span style="color: #000000">);
}
</span><span style="color: #0000ff">var</span> data=<span style="color: #000000">newclient;
<span style="color: #008000">//<span style="color: #008000"> console.log(data);<span style="color: #0000ff">var chart = <span style="color: #0000ff">new<span style="color: #000000"> F2.Chart({
id: 'linear'<span style="color: #000000">,pixelRatio: window.devicePixelRatio
});
chart.source(data);
chart.scale('creatTime'<span style="color: #000000">,{
tickCount: 15<span style="color: #000000">
});
chart.scale('sum'<span style="color: #000000">,{
tickCount: 6<span style="color: #000000">
});
chart.axis('creatTime'<span style="color: #000000">,{
label: {
fontSize:12<span style="color: #000000">
}
});
chart.area().position('creatTimesum').color('goodsId',['#2196F3','#DD6666']).shape('smooth'<span style="color: #000000">);
chart.line().position('creatTimesum').color('goodsId','#DD6666']).shape('smooth'<span style="color: #000000">);
chart.render();
},error: </span><span style="color: #0000ff">function</span><span style="color: #000000">() {
}
})
}
<span style="color: #0000ff">function<span style="color: #000000"> pancake() {
</span><span style="color: #0000ff">var</span> sellerId = getCookie("sellerId"<span style="color: #000000">);
</span><span style="color: #0000ff">var</span> sellerId =<span style="color: #000000"> {
</span>"sellerId"<span style="color: #000000">: sellerId,}
$.ajax({
url: </span>"https://www.xxxxxxx.cn/xxxxxx/xxxxxxx/",<span style="color: #008000">//</span><span style="color: #008000">报告种类<a href="/tag/tongji/" target="_blank" class="keywords">统计</a></span>
<span style="color: #000000"> data: sellerId,success: <span style="color: #0000ff">function<span style="color: #000000">(data) {
<span style="color: #008000">//<span style="color: #008000">打印出数组
<span style="color: #0000ff">var bookresult=<span style="color: #000000">JSON.parse(data).result;
<span style="color: #0000ff">var sums=0<span style="color: #000000">;
<span style="color: #0000ff">for(<span style="color: #0000ff">var i=0;i<bookresult.length;i++<span style="color: #000000">){
bookresult[i].goodsId=(bookresult[i].goodsId+'').replace('1','格林童话'<span style="color: #000000">);
bookresult[i].goodsId=(bookresult[i].goodsId+'').replace('2','阿里巴巴与四十大盗'<span style="color: #000000">);
sums+=<span style="color: #000000">bookresult[i].sum;
}
<span style="color: #008000">//<span style="color: #008000"> console.log(sums)
<span style="color: #0000ff">var data=<span style="color: #000000">bookresult;
</span><span style="color: #0000ff">var</span> map =<span style="color: #000000"> {};
data.map(</span><span style="color: #0000ff">function</span><span style="color: #000000">(obj) {
map[obj.goodsId] </span>= Math.round((obj.sum)/sums*100) + '%';
<span style="color: #000000">
});
</span><span style="color: #0000ff">var</span> chart = <span style="color: #0000ff">new</span><span style="color: #000000"> F2.Chart({
id: </span>'mountNode'<span style="color: #000000">,pixelRatio: window.devicePixelRatio,padding: [</span>20,'auto'<span style="color: #000000">]
});
chart.source(data,{
sum: {
formatter: </span><span style="color: #0000ff">function</span><span style="color: #000000"> formatter(val) {
</span><span style="color: #0000ff">return</span> val + '%'<span style="color: #000000">;
}
}
});
chart.tooltip(</span><span style="color: #0000ff">false</span><span style="color: #000000">);
chart.legend({
position: </span>'right'<span style="color: #000000">,itemFormatter: </span><span style="color: #0000ff">function</span><span style="color: #000000"> itemFormatter(val) {
</span><span style="color: #0000ff">return</span> val + ' ' +<span style="color: #000000"> map[val];
}
});
chart.coord(</span>'polar'<span style="color: #000000">,{
transposed: </span><span style="color: #0000ff">true</span><span style="color: #000000">,innerRadius: </span>0.6<span style="color: #000000">,radius: </span>0.85<span style="color: #000000">
});
chart.axis(</span><span style="color: #0000ff">false</span><span style="color: #000000">);
chart.interval().position(</span>'a*sum').color('goodsId','#3DC1C7']).adjust('stack'<span style="color: #000000">);
chart.guide().html({
position: [</span>'50%','46%'<span style="color: #000000">],html: </span>'<div style="width: 250px;height: 40px;text-align: center;">' + '<div style="font-size: 16px">总<a href="/tag/shuliang/" target="_blank" class="keywords">数量</a></div>' + '<div style="font-size: 24px">'+sums+'</div>' + '</div>'<span style="color: #000000">
});
chart.render();
},error: </span><span style="color: #0000ff">function</span><span style="color: #000000">() {
}
})
}
<span style="color: #0000ff">function<span style="color: #000000"> columnar() {
</span><span style="color: #0000ff">var</span> sellerId = getCookie("sellerId"<span style="color: #000000">);
</span><span style="color: #0000ff">var</span> sellerId =<span style="color: #000000"> {
</span>"sellerId"<span style="color: #000000">: sellerId,}
$.ajax({
url: </span>"https://www.xxxxxxx.cn/xxxxx/xxxxxxx/",<span style="color: #008000">//</span><span style="color: #008000">近一个月<a href="/tag/yonghu/" target="_blank" class="keywords">用户</a> <a href="/tag/biaoji/" target="_blank" class="keywords">标记</a>与未<a href="/tag/biaoji/" target="_blank" class="keywords">标记</a><a href="/tag/tongji/" target="_blank" class="keywords">统计</a></span>
<span style="color: #000000"> data: sellerId,success: <span style="color: #0000ff">function<span style="color: #000000">(data) {
</span><span style="color: #008000">//</span><span style="color: #008000"><a href="/tag/huoqu/" target="_blank" class="keywords">获取</a>最近30天新增客户数</span>
<span style="color: #0000ff">var</span> addperson =<span style="color: #000000"> JSON.parse(data).result.sum_lastmonth;
</span><span style="color: #008000">//</span><span style="color: #008000"><a href="/tag/huoqu/" target="_blank" class="keywords">获取</a>未<a href="/tag/biaoji/" target="_blank" class="keywords">标记</a>客户数</span>
<span style="color: #0000ff">var</span> unmark =<span style="color: #000000"> JSON.parse(data).result.unmarked;
</span><span style="color: #008000">//</span><span style="color: #008000"><a href="/tag/huoqu/" target="_blank" class="keywords">获取</a>已<a href="/tag/biaoji/" target="_blank" class="keywords">标记</a>客户数</span>
<span style="color: #0000ff">var</span> mark =<span style="color: #000000"> JSON.parse(data).result.marked;
</span><span style="color: #0000ff">var</span> data =<span style="color: #000000"> [{
sign: </span>'最近30天新增客户数'<span style="color: #000000">,quality: addperson
},{
sign: </span>'未<a href="/tag/biaoji/" target="_blank" class="keywords">标记</a>客户数'<span style="color: #000000">,quality: unmark
},{
sign: </span>'已<a href="/tag/biaoji/" target="_blank" class="keywords">标记</a>客户数'<span style="color: #000000">,quality: mark
}];
</span><span style="color: #0000ff">var</span> chart = <span style="color: #0000ff">new</span><span style="color: #000000"> F2.Chart({
id: </span>'columnar'<span style="color: #000000">,pixelRatio: window.devicePixelRatio
});
chart.source(data,{
quality: {
tickCount: </span>5<span style="color: #000000">
}
});
chart.tooltip({
showItemMarker: </span><span style="color: #0000ff">false</span><span style="color: #000000">,onShow: </span><span style="color: #0000ff">function</span><span style="color: #000000"> onShow(ev) {
</span><span style="color: #0000ff">var</span> items =<span style="color: #000000"> ev.items;
items[</span>0].name = <span style="color: #0000ff">null</span><span style="color: #000000">;
items[</span>0].name = items[0<span style="color: #000000">].title;
}
});
chart.axis(</span>'sign'<span style="color: #000000">,{
label: {
fontSize:</span>12<span style="color: #000000">
}
});
chart.interval().position(</span>'sign*quality').color('sign',['#3DC1C7','#FCBD44','#DD6666'<span style="color: #000000">]);
chart.render();
},error: </span><span style="color: #0000ff">function</span><span style="color: #000000">() {
}
})
}
有什么不懂的欢迎在下面留言,一起进步。。。。。。