提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:张莹心|2021-10-21 11:01:19.630|阅读 168 次
概述:本文将展示如何快速创建一个很酷的交互式线性仪表图,突出显示世界各地的 Covid-19 疫苗接种数据。我们的图表将使我们能够在撰写本文时可视化 Covid-19 疫苗接种的状态,并将显示两种类型的数据——显示我们离全球人口部分和完全接种疫苗的中间目标还有多远。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
AnyChart是基于JavaScript (HTML5) 的图表控件。使用AnyChart控件,可创建跨浏览器和跨平台的交互式图表和仪表。AnyChart 图表目前已被很多知名大公司所使用,可用于仪表盘、报表、数据分析、统计学、金融等领域。
AnyChar HTML5图表高度可定制且高度兼容。拥有纯JavaScript API,AnyChart图表内置客户端数据实时更新,多层次向下钻区和具体参数更新。强大的主题引擎使你通过一系列图表进行独特的演示体验,而PDF和图像输出能产出图书质量打印文档。
本文提供了一个易于遵循的指南,用于在 JavaScript 中构建交互式线性仪表图。我们将展示如何快速创建一个很酷的交互式线性仪表图,突出显示世界各地的 Covid-19 疫苗接种数据。我们的图表将使我们能够在撰写本文时可视化 Covid-19 疫苗接种的状态,并将显示两种类型的数据——显示我们离全球人口部分和完全接种疫苗的中间目标还有多远。
甲线性量规图表表示垂直或水平线性刻度,显示了所需的值,与一个色标有单个或多个的指针沿。可以根据所表示的数据在轴上设置数据范围的最小值和最大值。指针位置指示度量的当前值。
仪表图可以使用单个指针或标记组合显示单个值或多个值。指针可以是针或带有任何形状(如圆形、正方形、矩形或三角形)标记的线。
线性仪表图类型是一种有效的可视化表示,用于显示值与所需数据点的接近程度或距离程度。
几种类型的线性仪表是温度计图、子弹图、储罐图和 LED 图表。水银温度计 - 由显示温度和指针值的小刻度组成 - 是线性仪表图的经典示例。
这是对最终线性仪表图的先睹为快。按照本教程学习我们如何使用 JavaScript 构建这个有趣且内容丰富的线性仪表图。
掌握一些使用 HTML 和 JavaScript 等技术的技能总是很有用的。但是在本教程中,我们使用了一个 JS 图表库,它可以更轻松地创建引人注目的图表,例如线性仪表,即使只有最少的技术知识。
有几个JavaScript 图表库可以轻松地可视化数据,这里我们使用AnyChart创建线性仪表图。这个库很灵活,有大量的文档,并且包含一些很好的例子。此外,它有一个用于试验代码的游乐场,可免费用于非商业用途。如果您想购买许可版本,可以查看可用选项,如果您是教育组织或非营利组织,可以在此处联系以获取免费许可。
这些是创建线性仪表图的基本步骤:
我们需要做的第一件事是制作一个 HTML 页面来保存我们的可视化。我们添加一个<div>块元素并给它一个 ID,以便我们稍后引用它:
<html lang="en"> <head> <title>JavaScript Linear Gauge</title> <style type="text/css"> html, body, #container { width: 100%; height: 100%; margin: 0; padding: 0; } </style> </head> <body> <div id="container"></div> </body> </html>宽度和高度属性<div>设置为 100%,以便在整个屏幕上呈现图表。这些属性可以根据需要进行修改。
要创建线性仪表图,我们需要添加三个脚本:核心模块、线性仪表模块和表格模块:
<html lang="en"> <head> <title>JavaScript Linear Gauge</title> <style type="text/css"> html, body, #container { width: 100%; height: 100%; margin: 0; padding: 0; } </style> </head> <body> <div id="container"></div> <script> // All the code for the JS linear gauge will come here </script> <script src="//cdn.anychart.com/releases/8.10.0/js/anychart-core.min.js"></script> <script src="//cdn.anychart.com/releases/8.10.0/js/anychart-linear-gauge.min.js"></script> <script src="//cdn.anychart.com/releases/8.10.0/js/anychart-table.min.js"></script> </body> </html>
线性仪表图的数据是从Our World in Data 中收集的,并包含在代码中。在那个网站上,我们可以看到全世界每个大陆接受一剂和两剂 Covid疫苗的人的百分比。
因为(在撰写本文时)没有一个数字大于 50%,所以我们将所有线性仪表的轴的最大限制保持为 50%,并且我们比较了每个大陆与该标记的距离,以及全球数字。我们用 LED 表示至少部分接种疫苗的数字,并用条形指针表示完全接种疫苗的数字。我们将看到如何在最后一步添加数据。
那么,我们的初始步骤都完成了,现在让我们添加代码来使用 JavaScript 制作线性仪表图!
在添加任何代码之前,我们将所有内容都包含在一个函数中,以确保其中的整个代码仅在页面加载后才执行。
创建线性仪表图涉及几个步骤,并且比其他基本图表类型要复杂一些。但这并不意味着它非常困难,我们将通过每一步来了解图表是如何制作的。
function drawGauge(value, settings) { // Create gauge with settings const gauge = anychart.gauges.linear(); gauge.data([value, settings.value]); gauge.layout('horizontal'); // Set scale for gauge const scale = anychart.scales.linear(); scale.minimum(0).maximum(settings.maximum).ticks({ interval: 2 }); // Set axis for gauge const axis = gauge.axis(0); axis.width('1%').offset('43%').scale(scale).orientation('bottom'); }
现在,我们将为条形系列创建条形指针和标签。标签被赋予一个偏移量以避免与指针重叠:
// Create and set bar point const barSeries = gauge.bar(0); barSeries .scale(scale) .width('4%'); // Create and set label with actual data const labelBar = barSeries.labels(); labelBar .enabled(true) .offsetY('-15px');
在 LED 点中,我们将指定点之间的间隙,并使用 dimmer 属性设置剩余 LED 点的颜色以指示不亮效果。我们还将声明点亮的 LED 点的色阶:
// Create and set LED point const ledPointer = gauge.led(1); ledPointer .offset('10%') .width('30%') .count(settings.maximum) .scale(scale) .gap(0.55) .dimmer(function () { return '#eee'; }); ledPointer.colorScale().colors(['#63b39b', '#63b39b']);
为了制作每个大陆的线性仪表,我们将为每个区域及其数据调用上面定义的函数。第一个数字表示目标值数据,第二个变量是带有 LED 数据的对象。在maximum保持恒定的50,而value完全接种群体的每个数据点的百分比值。该值将由指针显示:
// Create gauges const world = drawGauge(13.68, { maximum: 50, value: 27.13 }); const europe = drawGauge(36.98, { maximum: 50, value: 47.28 }); const nAmerica = drawGauge(36.77, { maximum: 50, value: 46.53 }); const sAmerica = drawGauge(22.8, { maximum: 50, value: 40.54 }); const asia = drawGauge(10.14, { maximum: 50, value: 27.16 }); const oceania = drawGauge(9.75, { maximum: 50, value: 22.12 }); const africa = drawGauge(1.56, { maximum: 50, value: 3.04 });
// Create table to place gauges const layoutTable = anychart.standalones.table(); layoutTable .hAlign('right') .vAlign('middle') .fontSize(14) .cellBorder(null); // Put gauges into the layout table layoutTable.contents([ [null, 'Covid-19 Vaccination - How far are we from the halfway mark?'], ['World', world], ['Europe', europe], ['North America', nAmerica], ['South America', sAmerica], ['Asia', asia], ['Oceania', oceania], ['Africa', africa] ]); // Set height for first row in layout table layoutTable .getRow(0) .height(50) .fontSize(22) .hAlign('center'); // Set the first column to 100% width layoutTable.getCol(0).width(100);
// Set container id and initiate drawing layoutTable.container('container'); layoutTable.draw();就是这样。我们现在有一个功能齐全且漂亮的 JavaScript 线性仪表图!可以在CodePen [和AnyChart Playground ]上查看此线性仪表初始版本的代码。
我们制作的默认线性仪表图现在看起来很棒,但进行一些修改将提高可读性并使图表更加出色。JavaScript 库不仅可以快速创建图表,还可以根据需要自定义可视化效果。图表库提供了许多用于控制图表行为和美感的配置选项。让我们对当前的线性仪表图进行一些小而有效的调整。
为了使线性仪表看起来更具凝聚力,让我们将条形指针的颜色属性设为 LED 点的较暗版本。我们将通过指定栏的填充和描边属性来实现:
// Create and set bar point const barSeries = gauge.bar(0); barSeries .scale(scale) .width('4%') .fill('#296953') .stroke('#296953');
// Create stand alone legend const legend = anychart.standalones.legend(); legend .position('center') .items([ { text: 'Fully vaccinated', iconFill: '#296953' }, { text: 'Partially vaccinated', iconFill: '#63b39b' }, { text: 'Not vaccinated', iconFill: '#eee' } ]);
// Set gauge tooltip gauge .tooltip() .useHtml(true) .titleFormat('{%Value} %') .format( 'Maximum on scale: ' + settings.maximum + ' %' );在CodePen [或AnyChart Playground ]上查看此版本的完整代码。
这个 JavaScript 线性仪表图的整个最终代码可以在CodePen [和AnyChart Playground ] 上找到。
更多AnyChart相关资源,请点击此处进行查看~ 想要购买AnyChart正版授权的朋友可以。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
在处理电子表格时,尤其是在专业和数据导向型环境中,正确设置 Excel 单元格内的数字格式至关重要。本文将介绍如何使用 Spire.XLS for Java 设置 Excel 单元格的数字格式,帮助轻松创建精美且结构清晰的电子表格。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢