提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:莫成敏|2020-06-24 11:52:34.130|阅读 176 次
概述:堆叠的面积图是经典面积图的一种变体,是一种非常流行的数据可视化形式。它们非常适合以图形方式表示多个变量及其总数如何随时间变化。在本教程中,我将向您展示如何轻松地创建交互式JavaScript堆叠面积图,该图在任何HTML5项目、网站或应用中都具有吸引力。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
AnyChart是基于JavaScript (HTML5) 的图表控件。使用AnyChart控件,可创建跨浏览器和跨平台的交互式图表和仪表。AnyChart 图表目前已被很多知名大公司所使用,可用于仪表盘、报表、数据分析、统计学、金融等领域。
本教程分为上下两个部分内容,本文是下篇,内容紧接上文!
自定义JavaScript堆积面积图
不同的人很可能会为图表选择不同的功能和美观,更不用说您作为Web开发人员或数据可视化设计师可能会获得的不同任务。幸运的是,可以轻松修改由AnyChart支持的JS图表,以适应您的需求和偏好。我将向您展示如何立即执行一些快速自定义:
添加图例和动画
每个显示多个值的图表都应具有图例,以便于阅读。
添加以下代码以打开基于JS的堆积面积图的图例。
我还想通过添加动画来给这张图表一点哇的效果。您可以通过在图表的JavaScript代码中添加一小段代码来快速实现此目的:
查看结果,您可以在AnyChart Playground上找到带有图例和动画的JS堆叠区域图:
将值更改为百分比
现在,让我们将堆叠模式从值切换为百分比。这样,您可以可视化构图如何变化而与总数无关。
这很简单。要使JavaScript(HTML5) 百分比堆叠的面积图可视化相同的数据,只需将“value”替换为“percent”:
// change the stacking mode to percent chart.yScale().stackMode('percent');
该JS百分比堆积面积图可在AnyChart Playground上获得。
配置工具提示,标记和标签
让我们使图表在工具提示和图例中显示系列标题。有很多方法可以做到这一点。但是我也想修改点标记。因此,让我们创建一个辅助函数,您可以在其中编写自定义所有这些元素所需的代码:
// helper function to setup tooltip labels for all series and style markers var setupSeriesLabels = function (series, name) { series.name(name) };
在我要设置系列并添加相应标题的地方使用此功能:
// create a series with the mapped active data var actSeries = chart.splineArea(activeData); setupSeriesLabels(actSeries, 'Active'); // create a series with the mapped recovered data var recSeries = chart.splineArea(recoveredData); setupSeriesLabels(recSeries, 'Recovered'); // create a series with the mapped deaths data var deathsSeries = chart.splineArea(deathsData); setupSeriesLabels(deathsSeries, 'Deaths');
现在,再次使用助手功能来设置标记样式。我要做的是使它们变成圆形,给它们指定特定的大小,并指定它们的笔触粗细和颜色。最后,我还将指定它们的zIndex(),以便它们出现在最前面。
这是代码:
// helper function to setup series and give them appropriate names in order to distinguish and label them properly var setupSeries = function (series, name) { series.name(name) // setting the markers series.hovered().stroke('3 #fff 1'); series.hovered().markers() .enabled(true) .type('circle') .size(4) .stroke('1.5 #fff'); series.markers().zIndex(100); };
经过这些更改后,图表的输出如下:
欢迎您在AnyChart Playground打开此自定义的JS百分比堆积面积图。
改变颜色
最后,我想将图表的颜色修改为对我来说更有意义的颜色。我要用红色阴影表示死亡,绿色表示恢复,蓝色表示活跃。随意提出自己的想法!
这是代码:
// create a series with the mapped active series var actSeries = chart.splineArea(activeData) .fill("#1E8FCD") .stroke("#4b9bc6") setupSeries(actSeries, 'Active'); // create a series with the mapped recovered data var recSeries = chart.splineArea(recoveredData) .fill("#B3C67D") .stroke("#b9c1a0") setupSeries(recSeries, 'Recovered'); // create a series with the mapped deaths data var deathsSeries = chart.splineArea(deathsData) .fill("#b3315d") .stroke("#b5617d") setupSeries(deathsSeries, 'Deaths');
看看我在一开始在GIF中显示的最终交互式JavaScript堆积百分比百分比图表:
您可以在下面找到此数据可视化的全部代码,并在AnyChart Playground上找到最终的JS百分比堆积面积图:
<!DOCTYPE html> <html lang="en"> <head> <title>Stacked Area Chart</title> <script src="//cdn.anychart.com/releases/8.8.0/js/anychart-core.min.js"></script> <script src="//cdn.anychart.com/releases/8.8.0/js/anychart-data-adapter.min.js"></script> <script src="//cdn.anychart.com/releases/8.8.0/js/anychart-cartesian.min.js"></script> <style> html, body, #container { width: 100%; height: 100%; margin: 0; padding: 0; } </style> </head> <body> <div id="container"></div> <script> anychart.onDocumentReady(function () { anychart.data.loadCsvFile("//static.anychart.com/git-storage/word-press/data/covid-19-italy/data.csv", function (data) { // set the data and ignore the first row that contains headers var dataSet = anychart.data.set(data, {ignoreFirstRow: true}); // map data for the deaths series var deathsData = dataSet.mapAs({ 'x': 0, 'value': 2 }); // map data for the recovered series var recoveredData = dataSet.mapAs({ 'x': 0, 'value': 3 }); // map data for the active series var activeData = dataSet.mapAs({ 'x': 0, 'value': 4 }); // specify the area chart type var chart = anychart.area(); // helper function to setup series and give them appropriate names in order to distinguish and label them properly var setupSeries = function (series, name) { series.name(name) // setting the markers series.hovered().stroke('3 #fff 1'); series.hovered().markers() .enabled(true) .type('circle') .size(4) .stroke('1.5 #fff'); series.markers().zIndex(100); }; // create a series with the mapped active data var actSeries = chart.splineArea(activeData) .fill("#1E8FCD") .stroke("#4b9bc6") setupSeries(actSeries, 'Active'); // create a series with the mapped recovered data var recSeries = chart.splineArea(recoveredData) .fill("#B3C67D") .stroke("#b9c1a0") setupSeries(recSeries, 'Recovered'); // create a series with the mapped deaths data var deathsSeries = chart.splineArea(deathsData) .fill("#b3315d") .stroke("#b5617d") setupSeries(deathsSeries, 'Deaths'); // force the chart to stack values by the y scale chart.yScale().stackMode('percent'); // set the chart title chart.title('Covid-19 in Italy'); // set the labels of the axes chart.xAxis().title("Date"); chart.yAxis().title("Number of people"); // turn on the crosshair var crosshair = chart.crosshair(); crosshair.enabled(true) .yStroke(null) .xStroke('#fff') .zIndex(39); crosshair.yLabel().enabled(false); // turn on the legend chart.legend(true); // turn on the chart animation chart.animation(true); // set the container id for the chart chart.container('container'); // initiate chart drawing chart.draw(); }); }); </script> </body> </html>
结论
恭喜你!您刚刚建立了第一个JavaScript堆积面积图!这个过程不是很困难,不是吗?
相关内容推荐:
跨平台图表控件Anychart教程:如何使用JavaScript创建堆积面积图(上)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢