最近我接到一个开发任务,要求就“售后服务客户满意度调查问卷表”里客户填写的反馈答案做一个统计。

问题的例子如下:

  • 您最后一次是何时购买了我们的产品?
  • 服务人员服务态度是否友好、工作尽职尽责?
  • 您对我公司提供的售后服务总体感觉如何?

。。。

我要实现的功能是出一个报表,在同一个页面显示对于每个问题,每个答案的总共出现次数。

我实现了一个简单的效果,如下图所示:

当然六个图标用的都是一模一样的测试数据,主要解决了多个图表出现在同一个页面里的布局问题。

大家用下面这个链接测试下效果。用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统计图表相关推荐

  1. JS数组 编程练习 使用Javascript语言,把以下数组 在页面显示如下图所示的图案

    编程练习 使用Javascript语言,把以下数组 var  arr = ['*','##',"***","&&","****&quo ...

  2. javascript 在页面显示xxxx年xx月xx日

    <!DOCTYPE html> <html lang="zh-cn"> <head>  <meta charset="UTF-8 ...

  3. fusioncharts同一页面显示2个仪表盘,且以java字符串作为xml数据

    为什么80%的码农都做不了架构师?>>>    fusioncharts同一页面显示2个仪表盘,且以java字符串作为xml数据 <%@ page contentType=&q ...

  4. 从输入URL到页面显示的过程

    http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ http://www.cnblogs.com/wena ...

  5. js创建10万行表格 页面显示10万行数据

    js创建10万行表格 页面显示10万行数据 <html> <head></head> <style> table {     border-collap ...

  6. java页面分页显示代码_通用分页jsp页面显示

    注:本章内容都是在上一篇文章 通用分页后台显示:https://www.cnblogs.com/ly-0919/p/11058942.html  的基础上进行改进,所以有许多的类都在上一篇, 带来不便 ...

  7. SSM上传用户头像。解决HTTP 400,保存到本地以及数据库保存路径,在页面显示的问题

    第一次用SSM上传用户图片,遇到很多问题,这里逐一记录: 1.保存到本地某个文件夹 2.在页面显示图片 3.报错HTTP 400 bad request 用maven搭建的项目,结构如图: 主要是实体 ...

  8. html css学习笔记~ 基础知识和页面显示的四个区域内容及display:flex 等常用的一些命令(手画)

    一般 在html文件中输入<link href=".../xxx.css" rel="stylesheet"/> 通过这样的外部样式联系 css & ...

  9. 360浏览器兼容问题html,该页面显示了360浏览器中的异常兼容性问题

    简介: 在Web应用程序的开发过程中,发现某些页面无法在360浏览器上正确显示,但是在其他浏览器上360浏览器页面显示不全,它们都处于正常状态. 有什么问题吗? 询问: 网页在360浏览器上显示不正确 ...

最新文章

  1. 数据库元数据数据字典查询_2_列出所有的数据库
  2. [Linux]Centos 6.3 下源代码安装gcc 4.8.2/4.9.2
  3. 第七期:详解JavaScript运行机制(Event Loop)
  4. Python编程从入门到实践~文件写入
  5. 作者:曹建峰,男,腾讯研究院版权研究中心研究员,主要从事网络安全、数据保护、网络版权与内容产业等互联网法律政策研究工作。...
  6. Python案例:词频统计
  7. linux unix域socket_从文件描述符到Socket
  8. 详解SQL2005中的AWE
  9. Java数组快速排序
  10. PCB布线规则自学笔记
  11. 核心指导网络由任务编码器_如何在现实世界中与实际用户一起指导您的编码和编码生涯...
  12. JAVA多线程任务详解笔记
  13. android hdmi 开发,Android TV HDMI开发
  14. 饿了么退货显示服务器异常,外卖配送异常订单如何处理?商家必看!
  15. AOP防止表单重复提交
  16. VB-TabIndex、GotFocus、SetFocus
  17. 字节跳动大数据研发面试——自我反省
  18. Pinnacle Studio 中文版
  19. 【推荐】javaweb JAVA JSP 快递信息管理系统物流快递网站物流管理系统源码邮件管理网站
  20. Guacamole搭建,一个基于HTML5的远程桌面

热门文章

  1. Linux下建立多实例Tomcat(独立JVM)
  2. JavaScript入门(part10)--作用域
  3. Tableau研学小课堂(part4)--表
  4. 第三次学JAVA再学不好就吃翔(part11)--基础语法之switch语句
  5. 正则表达式入门之使用元字符
  6. android9 三星 港版,三星S9官方港版安卓9完整版固件升级更新包:TGY-G9600ZHU4CSE7
  7. SAP CRM organization Model(组织架构模型)自动决定的逻辑分析
  8. Spring 自动装配模式之构造函数装配方式
  9. SAP ABAP SQL的execution plan和cache
  10. 在SAP WebIDE Database Explorer里操作hdi实例