最近我接到一个开发任务,要求就“售后服务客户满意度调查问卷表”里客户填写的反馈答案做一个统计。
问题的例子如下:
- 您最后一次是何时购买了我们的产品?
- 服务人员服务态度是否友好、工作尽职尽责?
- 您对我公司提供的售后服务总体感觉如何?
。。。
我要实现的功能是出一个报表,在同一个页面显示对于每个问题,每个答案的总共出现次数。
我实现了一个简单的效果,如下图所示:
当然六个图标用的都是一模一样的测试数据,主要解决了多个图表出现在同一个页面里的布局问题。
大家用下面这个链接测试下效果。用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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
相关推荐
在"html5曲线柱形统计图表代码"中,曲线和柱形图通常会结合使用,以便在同一图表中展示两种不同类型的数据。曲线图适合显示连续变化的数据,而柱形图则擅长表示分类数据。通过jqPlot,我们可以轻松地将这两者合并,...
在处理多个度量时,Echarts支持在同一图表上并行展示,比如通过多条折线或多个柱状图。你可以创建多个`series`对象,每个对象代表一个度量,它们共享相同的维度数据,但拥有不同的值数组。 此外,Echarts还提供了...
3. 多图层:在同一canvas上绘制多个图表,通过调整z-index实现图层叠加。 通过以上知识点,我们可以使用Chart.js创建出各种丰富的统计图表,满足不同场景下的数据可视化需求。无论是在网页应用、数据分析报告还是...
- **可复用性**:图表组件可以轻松重用,这在创建多个类似图表或在不同项目中使用同一图表模板时非常有用。 - **灵活性**:支持多种图表类型,包括折线图、柱状图、饼图、雷达图等,同时支持自定义样式和交互行为...
在同一页面中,可以设置多个ECharts图表之间的联动,当一个图表发生改变时,其他图表会相应地更新,以展示数据间的关联性。 9. **优化与性能**: 对于大数据量的展示,ECharts提供了多种优化手段,如数据代理、...
在本实例中,蜘蛛网图可能用于展示不同考试中的综合表现,将多个考试的分数在同一图表上表示,有助于对比分析考生在不同考试中的表现差异。 不规则多边形(Irregular Polygon)则可以用于创建自定义的图形,比如在...
为了确保图表在不同设备和屏幕尺寸上都能正常显示,我们需要考虑响应式设计。Vue的`resize-observer-plugin`插件可以帮助我们在窗口大小改变时自动重绘ECharts图表。 9. **优化性能**: 对于大量数据或复杂图表,...
通常,如果浏览器允许,可以使用Cookie存储访客ID,如果Cookie不可用,可以根据IP地址进行统计,但要注意IP地址可能无法准确反映独立访客,因为同一IP可能有多个用户。 5. **日志分析**:压缩包中的`log`文件可能是...
ECharts提供了网格(grid)配置,可以将多个图表布局在同一画布上,通过调整每个图表的xAxis和yAxis范围,实现图表间的相对位置。 此外,ECharts的交互功能也是其亮点之一。例如,可以通过tooltip显示数据详情,...
3. 图形叠加:多个数据系列可以绘制在同一图表上,形成叠加效果。 4. 鼠标交互:Flot支持鼠标悬停显示数据点值、点击事件等,增强用户交互体验。 六、实际应用案例 Flot在数据分析、监控系统、报表展示等多个领域...
2. **多轴图表**: 可以在同一图表上设置多个轴,显示不同类型或范围的数据。 3. **连贯数据更新**: 支持实时数据流,图表可以动态更新数据,适应实时监控的需求。 4. **图例和工具提示**: 自定义图例样式,提供...
2. 数据列堆叠:在同一X轴上,可以堆叠多个系列的数据,显示总和。 3. 茎叶图、箱型图等统计图表:适用于特殊的数据展示需求。 总之,Highcharts作为一款强大的JavaScript图表库,不仅提供了丰富的图表类型和高度...
3. **独立访客(Unique Visitors)**:不重复的IP地址或设备,即使同一IP在不同时间访问也会被计为多个独立访客。 4. **停留时间(Time on Site)**:访客在网站上停留的平均时间。 5. **跳出率(Bounce Rate)**...
3. 多个散点数值显示:在同一地址上展示多个散点数值,可能是为了表示不同维度的数据或者时间序列数据的变化。这可能通过在地图上添加多个系列(series)来实现,每个系列对应一种散点类型,散点的位置和大小可以由...
总的来说,利用jQuery结合数据可视化库,我们可以轻松地在网页上创建交互式的统计图表。饼图适合展示部分与整体的关系,曲线图则能有效地展示数据随时间的变化。通过精心设计的配置选项,可以定制出符合需求的图表,...
最后,通过将以上配置整合到一起,并在HTML页面中使用jQuery来初始化Highcharts实例,我们便可以得到一个完整动态的学生成绩走势统计图表。通过这种方式,Highcharts能够帮助我们可视化各种数据,实现复杂数据的图形...
这可能涉及到检查`$_SERVER['REMOTE_ADDR']`(获取访问者的IP地址)或其他用户代理信息,尽管这种方法并不完全准确,因为它无法区分同一网络下的多个用户。 6. **防止重复计数**:为了确保每个访问只被计数一次,...
6. **雷达图**:雷达图(也称为星形图或蜘蛛图)多用于比较多个变量在同一标准下的表现。在时尚设计中,可以用于对比不同服装设计的多个评价维度,如舒适度、流行度等。 资源中的"Highcharts-3.0.10"可能是指...
5. **多环图**:如果需要在同一图表中展示多个数据项,circliful.js也支持创建多环图,只需在HTML中添加多个容器,并在JavaScript中相应地初始化即可。 6. **事件处理**:插件还提供了回调函数,可以在圆形统计图...
3. **显示结果**:统计结果可以实时显示在网页上,也可以在后台查看。使用PHP,我们可以通过查询数据库或读取文件获取到最新的浏览量,并将其插入到HTML中。 4. **防止重复计数**:为了防止同一用户短时间内多次...