在同一页面显示多个JavaScript统计图表
最近我接到一个开发任务,要求就“售后服务客户满意度调查问卷表”里客户填写的反馈答案做一个统计。
问题的例子如下:
- 您最后一次是何时购买了我们的产品?
- 服务人员服务态度是否友好、工作尽职尽责?
- 您对我公司提供的售后服务总体感觉如何?
。。。
我要实现的功能是出一个报表,在同一个页面显示对于每个问题,每个答案的总共出现次数。
我实现了一个简单的效果,如下图所示:
当然六个图标用的都是一模一样的测试数据,主要解决了多个图表出现在同一个页面里的布局问题。
大家用下面这个链接测试下效果。用Chrome开发者工具即可查看093_chart.html的实现。
http://i042416.github.io/FioriODataTestTool2014/WebContent/093_chart.html
手机上打开的效果。
简单过一下代码:
两个div里各包含了6个canvas。第一个div负责用6个饼状图来显示问题的结果,第二个div里的6个canvas则显示柱状图。每个canvas我用了标注成!important的display:inline属性,来强制让这些位于canvas节点里的统计图从左到右显示,而不是默认的每显示一个就换行。
function loaded(){var totalWidth = getBodyNode().clientWidth;console.log("width in load: " + totalWidth);var aCharts = document.getElementsByTagName("canvas");for( var i = 0; i < aCharts.length; i++){aCharts[i].width = totalWidth / 6.5;}var option = {type: "pie",xAxisData: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],yAxisData: [12, 19, 3, 5, 2, 3],yAxisLabel: "Number of Votes"};for( var i = 1; i <= 6; i++ ){createChartOnCanvas("myChart" + i, option);}option.type = "bar";for( var i = 1; i <= 6; i++ ){createChartOnCanvas("barChart" + i, option);}}
第41行把当前窗口总的宽度通过body节点的clientWidth属性来获得,然后除以6.5,商即为每个统计图的宽度。之所以除以6.5而不除以6是为了给每一行的统计图之间预留一些空隙。
统计图的类型,X和Y坐标的数据和标签通过option对象传入到函数createChartOnCanvas中。
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
在同一页面显示多个JavaScript统计图表相关推荐
- JS数组 编程练习 使用Javascript语言,把以下数组 在页面显示如下图所示的图案
编程练习 使用Javascript语言,把以下数组 var arr = ['*','##',"***","&&","****&quo ...
- javascript 在页面显示xxxx年xx月xx日
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8 ...
- fusioncharts同一页面显示2个仪表盘,且以java字符串作为xml数据
为什么80%的码农都做不了架构师?>>> fusioncharts同一页面显示2个仪表盘,且以java字符串作为xml数据 <%@ page contentType=&q ...
- 从输入URL到页面显示的过程
http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ http://www.cnblogs.com/wena ...
- js创建10万行表格 页面显示10万行数据
js创建10万行表格 页面显示10万行数据 <html> <head></head> <style> table { border-collap ...
- java页面分页显示代码_通用分页jsp页面显示
注:本章内容都是在上一篇文章 通用分页后台显示:https://www.cnblogs.com/ly-0919/p/11058942.html 的基础上进行改进,所以有许多的类都在上一篇, 带来不便 ...
- SSM上传用户头像。解决HTTP 400,保存到本地以及数据库保存路径,在页面显示的问题
第一次用SSM上传用户图片,遇到很多问题,这里逐一记录: 1.保存到本地某个文件夹 2.在页面显示图片 3.报错HTTP 400 bad request 用maven搭建的项目,结构如图: 主要是实体 ...
- html css学习笔记~ 基础知识和页面显示的四个区域内容及display:flex 等常用的一些命令(手画)
一般 在html文件中输入<link href=".../xxx.css" rel="stylesheet"/> 通过这样的外部样式联系 css & ...
- 360浏览器兼容问题html,该页面显示了360浏览器中的异常兼容性问题
简介: 在Web应用程序的开发过程中,发现某些页面无法在360浏览器上正确显示,但是在其他浏览器上360浏览器页面显示不全,它们都处于正常状态. 有什么问题吗? 询问: 网页在360浏览器上显示不正确 ...
最新文章
- 数据库元数据数据字典查询_2_列出所有的数据库
- [Linux]Centos 6.3 下源代码安装gcc 4.8.2/4.9.2
- 第七期:详解JavaScript运行机制(Event Loop)
- Python编程从入门到实践~文件写入
- 作者:曹建峰,男,腾讯研究院版权研究中心研究员,主要从事网络安全、数据保护、网络版权与内容产业等互联网法律政策研究工作。...
- Python案例:词频统计
- linux unix域socket_从文件描述符到Socket
- 详解SQL2005中的AWE
- Java数组快速排序
- PCB布线规则自学笔记
- 核心指导网络由任务编码器_如何在现实世界中与实际用户一起指导您的编码和编码生涯...
- JAVA多线程任务详解笔记
- android hdmi 开发,Android TV HDMI开发
- 饿了么退货显示服务器异常,外卖配送异常订单如何处理?商家必看!
- AOP防止表单重复提交
- VB-TabIndex、GotFocus、SetFocus
- 字节跳动大数据研发面试——自我反省
- Pinnacle Studio 中文版
- 【推荐】javaweb JAVA JSP 快递信息管理系统物流快递网站物流管理系统源码邮件管理网站
- Guacamole搭建,一个基于HTML5的远程桌面
热门文章
- Linux下建立多实例Tomcat(独立JVM)
- JavaScript入门(part10)--作用域
- Tableau研学小课堂(part4)--表
- 第三次学JAVA再学不好就吃翔(part11)--基础语法之switch语句
- 正则表达式入门之使用元字符
- android9 三星 港版,三星S9官方港版安卓9完整版固件升级更新包:TGY-G9600ZHU4CSE7
- SAP CRM organization Model(组织架构模型)自动决定的逻辑分析
- Spring 自动装配模式之构造函数装配方式
- SAP ABAP SQL的execution plan和cache
- 在SAP WebIDE Database Explorer里操作hdi实例