前端数据统计用做Bootstrap的一些柱状图、饼状图和折线图案例

Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。

Bootstrap 使用了一些 HTML5 元素和 CSS 属性。为了让这些正常工作,您需要使用 HTML5 文档类型(Doctype)。 因此,请在使用 Bootstrap 项目的开头包含下面的代码段。

<!DOCTYPE html>
<html>
....
</html>

Bootstrap 3 的设计目标是移动设备优先,然后才是桌面设备。这实际上是一个非常及时的转变,因为现在越来越多的用户使用移动设备。

为了让 Bootstrap 开发的网站对移动设备友好,确保适当的绘制和触屏缩放,需要在网页的 head 之中添加 viewport meta 标签,如下所示:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

width 属性控制设备的宽度。假设您的网站将被带有不同屏幕分辨率的设备浏览,那么将它设置为 device-width 可以确保它能正确呈现在不同设备上。

initial-scale=1.0 确保网页加载时,以 1:1 的比例呈现,不会有任何的缩放。

在移动设备浏览器上,通过为 viewport meta 标签添加 user-scalable=no 可以禁用其缩放(zooming)功能。

<meta name="viewport" content="width=device-width, initial-scale=1.0,  maximum-scale=1.0,  user-scalable=no">

介绍了这么多,言归正传,下面介绍图:首先要引入bootstrap的js库,包括柱状图,饼状图和折线图:

<!--Sparkline Charts Needed Scripts-->
<script src="assets/js/charts/sparkline/jquery.sparkline.js"></script>
<script src="assets/js/charts/sparkline/sparkline-init.js"></script>

<!--Easy Pie Charts Needed Scripts-->
<script src="assets/js/charts/easypiechart/jquery.easypiechart.js"></script>
<script src="assets/js/charts/easypiechart/easypiechart-init.js"></script>

<!--Page Related Scripts-->
<script src="assets/js/charts/flot/jquery.flot.js"></script>
<script src="assets/js/charts/flot/jquery.flot.orderBars.js"></script>
<script src="assets/js/charts/flot/jquery.flot.tooltip.js"></script>
<script src="assets/js/charts/flot/jquery.flot.resize.js"></script>
<script src="assets/js/charts/flot/jquery.flot.selection.js"></script>
<script src="assets/js/charts/flot/jquery.flot.crosshair.js"></script>
<script src="assets/js/charts/flot/jquery.flot.stack.js"></script>
<script src="assets/js/charts/flot/jquery.flot.time.js"></script>
<script src="assets/js/charts/flot/jquery.flot.pie.js"></script>
<script src="assets/js/charts/flot/flot-init.js"></script>

html代码如下:

<div class="col-xs-12 col-md-12 col-lg-12">
<div class="col-xs-6">
<div class="widget">
<div class="widget-header">
<span id="clientTotal" class="widget-caption" style="font-size:25px;font-weight:bold;color:black"></span>
</div>
<div class="widget-body">

<div class="row">
<div class="col-sm-12">
<div id="selectable-charts" class="chart chart-lg" style="padding: 0px; position: relative;"></div>

</div>
<!--<div class="row">
<div class="col-sm-12">
<div class="col-sm-12 col-md-6">
<button class="btn btn-default" id="setSelection">Select year 1994</button>
<button class="btn btn-default" id="clearSelection">Clear selection</button>
</div>
<div class="col-sm-12 col-md-6">
<div class="pull-right">
<label><input id="zoom" type="checkbox" />Zoom to selection</label>
</div>
</div>
</div>
</div>-->
</div>
</div>
</div>
</div>
<div class="col-xs-6">
<div class="dashboard-box">
<div class="box-header">
<div id="customerTotal" class="deadline" style="font-size:15px;font-weight:bold;">

</div>
</div>
<div class="box-tabbs">
<div class="tabbable">
<ul class="nav nav-tabs tabs-flat nav-justified" id="myTab11">
<li class="active">
<a data-toggle="tab" href="#visits" style="font-size:25px;font-weight:bold;">
本月拜访量趋势图
</a>
</li>
</ul>
<div class="tab-content tabs-flat no-padding">
<div id="visits" class="tab-pane active animated fadeInUp">
<div class="row">
<div class="col-lg-12 chart-container">
<div id="dashboard-chart-visits" class="chart chart-lg no-margin"></div>
</div>
</div>

</div>
</div>
</div>
</div>
</div>
</div>
</div>

 js代码如下

$(window).bind("load", function () {
/*Sets Themed Colors Based on Themes*/
themeprimary = getThemeColorFromCss(‘themeprimary‘);
themesecondary = getThemeColorFromCss(‘themesecondary‘);
themethirdcolor = getThemeColorFromCss(‘themethirdcolor‘);
themefourthcolor = getThemeColorFromCss(‘themefourthcolor‘);
themefifthcolor = getThemeColorFromCss(‘themefifthcolor‘);

//Sets The Hidden Chart Width
$(‘#dashboard-bandwidth-chart‘)
.data(‘width‘, $(‘.box-tabbs‘)
.width() - 30);

//------------------------------Visit Chart------------------------------------------------//
var username = $("#username").val();
var status = $("#type").val();
var d = new Date()
var vYear = d.getFullYear()
var vMon = d.getMonth() + 1
var vDay = d.getDate()
var day = new Date(vYear,vMon,0); 
var lastdate = day.getDate();
s=vYear+‘-‘+(vMon<10 ? "0" + vMon : vMon)+‘-‘+‘01‘+‘ 00:00:00,‘+vYear+‘-‘+(vMon<10 ? "0" + vMon : vMon)+‘-‘+lastdate+‘ 23:59:59‘;
$.ajax({
url: "../clientVisit",
async:false,
type: ‘post‘,
data: {‘username‘:username,‘time‘:s,‘status‘:status},
success: function(data1){
var data3 = $.parseJSON(data1);
var data2 = [{
color: themeprimary,
label: "拜访次数",
data:data3,
bars: {
order: 1,
align: "center",
show: true,
borderWidth: 0,
barWidth: 0.2,
lineWidth: .4,
fillColor: {
colors: [{
opacity: 0.4
}, {
opacity: 1
}]
}
}
},
{
color: themethirdcolor,
label: "拜访次数",
data: data3,
lines: {
show: true,
fill: false,
fillColor: {
colors: [{
opacity: 0.3
}, {
opacity: 0
}]
}
},
points: {
show: true
}
}];
var options = {
legend: {
show: false
},
xaxis: {
tickDecimals: 0,
position: "bottom",
color: ‘#f3f3f3‘,
align: "center",
tickWidth: 5
},
yaxis: {
min: 0,
color: ‘#f3f3f3‘,
tickFormatter: function (val, axis) {
return "";
},
},
grid: {
hoverable: true,
clickable: false,
borderWidth: 0,
aboveData: false,
color: ‘#fbfbfb‘

},
tooltip: true,
tooltipOpts: {
defaultTheme: false,
content: " <b>%x 日</b> , <b>%s</b> : <span>%y</span>",
}
};
var placeholder = $("#dashboard-chart-visits");
var plot = $.plot(placeholder, data2, options);

},
error: function(data) {
}
});
$.ajax({
url: "clientManage",
async:false,
cache: false,
type: ‘post‘,
data: {‘username‘:username,‘time‘:s,‘status‘:status},
success: function(data1){
var data = $.parseJSON(data1);
var lskh3 = $.parseJSON(data);
var data5 = [{
color: themeprimary,
label: "意向客户",
data: yxkh3
},
{
color: themethirdcolor,
label: "签约客户",
data: qykh3
},
{
color: themesecondary,
label: "长尾客户",
data: cwkh3
},
{
color: themefourthcolor,
label: "流失客户",
data: lskh3
}];
var options = {
series: {
lines: {
show: true
},
points: {
show: true
}
},
legend: {
noColumns: 4
},
xaxis: {
tickDecimals: 0,
color: gridbordercolor
},
yaxis: {
min: 0,
color: gridbordercolor
},
selection: {
mode: "x"
},
grid: {
hoverable: true,
clickable: false,
borderWidth: 0,
aboveData: false
},
tooltip: true,
tooltipOpts: {
defaultTheme: false,
content: "<b>%s</b> : <span>%x 日</span> : <span>%y 人</span>",
},
crosshair: {
mode: "x"
}
};

var placeholder = $("#selectable-charts");
placeholder.bind("plotselected", function (event, ranges) {

var zoom = $("#zoom").is(":checked");

if (zoom) {
plot = $.plot(placeholder, data, $.extend(true, {}, options, {
xaxis: {
min: ranges.xaxis.from,
max: ranges.xaxis.to
}
}));
}
});
placeholder.bind("plotunselected", function (event) {
});
var plot = $.plot(placeholder, data5, options);

},
error: function(data) {
}
});
InitiateEasyPieChart.init();
InitiateSparklineCharts.init();
InitiateFlotSelectableChart.init();
});

效果如下:

时间: 2024-12-20 12:26:01

前端数据统计用做Bootstrap的一些柱状图、饼状图和折线图案例的相关文章

前端数据可视化echarts.js使用指南

一.开篇 首先这里要感谢一下我的公司,因为公司需求上面的新颖(奇葩)的需求,让我有幸可以学习到一些好玩有趣的前端技术,前端技术中好玩而且比较实用的我想应该要数前端的数据可视化这一方面,目前市面上的数据可视化的框架琳琅满目,例如:D3.js.hightcharts.js.echarts.js………….由于公司对这个项目的需求是1.开发时间短,所以也就限制了D3.js的使用.2.要尽量的减少开发的成本,所以也就不能使用hightcharts.js(hightcharts是一款个人免费,商业付费的框架

前端数据可视化echarts.js

一.使用背景 前端的数据可视化这一方面,目前市面上的数据可视化的框架琳琅满目,例如:D3.js.hightcharts.js.echarts.js----.由于公司对这个项目的需求是1.开发时间短,所以也就限制了D3.js的使用.2.要尽量的减少开发的成本,所以也就不能使用hightcharts.js(hightcharts是一款个人免费,商业付费的框架).所以最终选择了echarts.js 二.echarts.js的优势与总体情况 echarts.js作为国内的IT三巨头之一的百度的推出一款相

前端数据可视化

原文 在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据.随着Web技术的发展,从传统只能依靠于flash.IE的vml,各个浏览器尚不统一的svg,到如今规范统一的canvas.svg为代表的html5技术,表现点.线.面要素的技术已经越来越规范成熟.我把前端数据可视化分为了五种:1.图表2.图谱3.地图4.关系图5.立体图我将按照顺序介绍62款前端可视化插件,下面就分享下34款图表插件:1.amchartsurl:

前端数据可视化插件(一)图表

摘要: 在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据.随着Web技术的发展,从传统只能依靠于flash.IE的vml,各个浏览器尚不统一的svg,到如今规范统一的canvas.svg为代表的html5技术,表现点.线.面要素的技术已经越来越规范成熟.我把前端数据可视化分为了五种: 图表 图谱 地图 关系图 立体图 我将按照顺序介绍64款前端可视化插件,下面就分享下34款图表插件 amchartsurl: http

android产品研发(八)--&gt;App数据统计

转载请标明出处:一片枫叶的专栏 上一篇文章中我们介绍了android社区中比较火的热修复功能,并介绍了目前的几个比较流行的热修复框架,以及各自的优缺点,同时也介绍了一下自身项目中对热修复功能的实践.目前主流的热修复原理上其实分为两种,一种是通过利用dex的加载顺序实现热修复功能,一种是通过native层实现指针替换实现热修复功能,两种各有利弊可以根据自身产品的需要选择不同的方案. 而文本将要介绍一下android产品中另一项基础功能-数据统计.App数据统计的意义在于通过统计用户的行为方式有针对

java代码实现highchart与数据库数据结合完整案例分析(二)---折线图

作者原创:未经博主允许不许转载 在上一篇的博客中,展示和分析了如何做一个饼状图,有疑问可以参考上一篇博客. 现在分析和展示折线图的绘制和案例分析, 先展示效果图: 与饼状图不同的是,折线图展现更多的数据,也会体现出更多的自动性. 先展示一下js代码: <!-- 播放类型统计折线图 --> <script type="text/javascript"> $(function () { var livFlowList=document.getElementById(

JavaScript数据可视化编程学习(一)Flotr2,包含简单的,柱状图,折线图,饼图,散点图

一.基础柱状图 二.基础的折线图 三.基础的饼图 四.基础的散点图 一.基础柱状图 如果你还没有想好你的数据用什么类型的图表来展示你的数据,你应该首先考虑是否可以做成柱状图.柱状图可以表示数据的变化过程或者表示多个数据之间的差异. 1.引入javascrippt 使用flotr2这个JavaScript库来创建图表.使用flotr2之前,不需要引入其他的JavaScript库(比如jquery),但是flotr2必须依赖HTML5的canvas元素的支持.canvas支持的主流浏览器有:chro

前端 SPA 单页应用数据统计解决方案 (ReactJS / VueJS)

前端 SPA 单页应用数据统计解决方案 (ReactJS / VueJS) 一.百度统计的代码: UV PV 统计方式可能存在问题 在 SPA 的前端项目中 数据统计,往往就是一个比较麻烦的事情,React 和 Vue 也是一样. 在 发现问题之前,我们得来思考下 百度统计的 统计原理 是什么? 1-1: 百度统计代码 var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.

应用highcharts做直观数据统计

最近在看上了统计类的东东,发现以前端图表神器:highcharts Highcharts是一款功能强大.开源.美观.图表丰富.兼容绝大多数浏览器的纯Js图表库,Highcharts支持的图表类型有直线图.曲线图.区域图.柱状图.饼状图.散状点图.仪表图.气泡图.瀑布图等多达20种图,其中很多图表可以集成在同一图形中形成综合图. 折线图: 上代码: 1 $(function () { 2 $('#container').highcharts({ 3 chart: { 4 type: 'line'