chart图表如图所示:

<div class="chart">
<canvas id="salesChart" style="height: 180px;">
</canvas>
</div>复制
引入js文件如下:
<script src="${prc}/bower_components/chart.js/Chart.js"></script>
<script src="${prc}/dist/js/pages/dashboard2.js"></script>复制
怎么将我们自己的数据动态显示在图表中呢?
进入dashboard2.js查看源码发现其数据是写死的,如图:

有两种方法:一种是直接修改dashboard2.js源码,一种是自己重新起一个id,自己创建chart图表,我这里直接在源码上进行修改。
修改如下:
var salesChartData = {
labels : ['一月', '二月', '三月', '四月', '五月', '六月', '七月','八月','九月','十月','十一月','十二月'],
datasets: [
{
label : 'Electronics',
fillColor : 'rgb(210, 214, 222)',
strokeColor : 'rgb(210, 214, 222)',
pointColor : 'rgb(210, 214, 222)',
pointStrokeColor : '#c1c7d1',
pointHighlightFill : '#fff',
pointHighlightStroke: 'rgb(220,220,220)',
data : [65, 59, 80, 81, 56, 55, 40,0,0,0,42,0]
},
{
label : 'Digital Goods',
fillColor : 'rgba(60,141,188,0.9)',
strokeColor : 'rgba(60,141,188,0.8)',
pointColor : '#3b8bba',
pointStrokeColor : 'rgba(60,141,188,1)',
pointHighlightFill : '#fff',
pointHighlightStroke: 'rgba(60,141,188,1)',
data : [28, 48, 40, 19, 86, 27, 90,0,0,87,0,0]
}
]
};复制
再次查看图表如下:

然后我们将数据替换成从后台动态获取的,使用ajax获取数据,记得改为同步,否则数据返回后无法获取,如下:
function getData(url) {
var data = "";
$.ajax({
type: "POST",//POST方式提交
dataType: "json",//返回json类型
url: url ,//请求url
async:false,//同步
success: function (result) {
data = result;
},
});
return data
}复制
然后将图表的data数据直接从该ajax方法获取:
var salesChartData = {
labels : ['一月', '二月', '三月', '四月', '五月', '六月', '七月','八月','九月','十月','十一月','十二月'],
datasets: [
{
label : 'Electronics',
fillColor : 'rgb(210, 214, 222)',
strokeColor : 'rgb(210, 214, 222)',
pointColor : 'rgb(210, 214, 222)',
pointStrokeColor : '#c1c7d1',
pointHighlightFill : '#fff',
pointHighlightStroke: 'rgb(220,220,220)',
data : getData("/data/getVisitReportData")
},
{
label : 'Digital Goods',
fillColor : 'rgba(60,141,188,0.9)',
strokeColor : 'rgba(60,141,188,0.8)',
pointColor : '#3b8bba',
pointStrokeColor : 'rgba(60,141,188,1)',
pointHighlightFill : '#fff',
pointHighlightStroke: 'rgba(60,141,188,1)',
data : getData("/data/getUserReportData")
}
]
};复制
后台我使用简单数据进行模拟,代码如下:
@Controller
@RequestMapping("/data")
public class DataController {
@RequestMapping("/getVisitReportData")
@ResponseBody
public List getVisitReportData(){
List list = new ArrayList( );
list.add( 13 );
list.add( 0 );
list.add( 34 );
list.add( 19 );
list.add( 48 );
list.add( 64 );
list.add( 32 );
list.add( 87 );
list.add( 59 );
list.add( 32 );
list.add( 15 );
list.add( 6 );
return list;
}
@RequestMapping("/getUserReportData")
@ResponseBody
public List getUserReportData(){
List list = new ArrayList( );
list.add( 23 );
list.add( 2 );
list.add( 77 );
list.add( 43 );
list.add( 97 );
list.add( 64 );
list.add( 21 );
list.add( 45 );
list.add( 37 );
list.add( 10 );
list.add( 65 );
list.add( 19 );
return list;
}复制
最后图表效果如图:

其中月份也可以从后台动态获取,显示截至到当前月的数据信息,其列表长度应当与数据列表长度一致。
两条曲线的数据也可以封装到一个对象里,使用一个ajax请求获取。这里可以根据自己需要修改。
其他更多更详细内容请参考Chart.js文档http://chartjs.cn/docs/
文章转载自码农小黑,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
2025年4月中国数据库流行度排行榜:OB高分复登顶,崖山稳驭撼十强
墨天轮编辑部
2518次阅读
2025-04-09 15:33:27
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1175次阅读
2025-04-27 16:53:22
2025年3月国产数据库中标情况一览:TDSQL大单622万、GaussDB大单581万……
通讯员
851次阅读
2025-04-10 15:35:48
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
664次阅读
2025-04-30 15:24:06
数据库,没有关税却有壁垒
多明戈教你玩狼人杀
581次阅读
2025-04-11 09:38:42
天津市政府数据库框采结果公布,7家数据库产品入选!
通讯员
562次阅读
2025-04-10 12:32:35
国产数据库需要扩大场景覆盖面才能在竞争中更有优势
白鳝的洞穴
544次阅读
2025-04-14 09:40:20
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
479次阅读
2025-04-17 17:02:24
一页概览:Oracle GoldenGate
甲骨文云技术
462次阅读
2025-04-30 12:17:56
GoldenDB数据库v7.2焕新发布,助力全行业数据库平滑替代
GoldenDB分布式数据库
454次阅读
2025-04-30 12:17:50