提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吴园园|2019-07-26 11:19:27.767|阅读 222 次
概述:AnyChart是灵活的高度可定制的跨浏览器、跨平台JavaScript (HTML5) 图表控件。今天的教程是关于JS极坐标图。花大约5分钟,你会发现如何绘制一个美丽的极地图表,但只显示其一半,使其成为一个半极坐标图表。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
数据可视化任务
客户希望我们回答的问题:
是否可以在AnyChart JS图表中显示极地图表的一半?
为了解释他愿意在他的图表上看到的内容,客户向我们发送了以下图片的链接:
要解决此任务,我们需要了解极坐标图类的API方法,将极坐标图向左移动并在其上绘制彩色线。
方案概述
首先,我们设置一个容器并在其中绘制极坐标图。接下来,我们只是将图表的一半移动到容器边界之外并更改图表外观。
为了处理主要任务,我们创建了一个使用chart.left()方法的函数。在这种情况下,图表向左移动容器的宽度(隐藏图表的一半)加上30(使轴标签看起来更好)。
functionrelocateChart(chart) { chart.left(-chart.container().getBounds().width+30); }
该函数在我们启动图表绘制之前以及每次调整容器大小时执行,因此我们的图表保持不变。
chart.listen('chartDraw', function(){ relocateChart(chart); });
该半极坐标图如下图所示:
如您所见,当API中存在适当的方法时,一些挑战实际上是简单的任务。现在让我们通过API 的Polar Chart部分来设置图表外观。
改变图表外观
我们在这里应该做的是在图表上绘制几条彩色线条,以给定的格式显示标签,并使网格线点缀。
首先,我们向数据集添加一些数据:
var data = [ {x: 52, value: 5.5}, {x: 60, value: 5.9}, {x: 75, value: 6.24}, {x: 90, value: 6.24}, {x: 110, value: 6.28}, {x: 120, value: 6.08}, {x: 135, value: 5.36}, {x: 150, value: 4.5}, {x: 160, value: null}, ];
现在我们使用数据显示线条并为每个系列设置特定颜色:
var series = chart.polyline(data); series.color("#4d9ece");
然后我们按照自己的意愿展示标签:
chart.yAxis().labels().anchor('left-center') .offsetY(-2) .format('{%value}kts')
并自定义网格使网格线点缀:
chart.xGrid().stroke({ dash: "1 5" });
如下图所示。您可以在AnyChart Playground尝试修改此半极坐标图示:
以下是完整代码:
anychart.onDocumentReady(function () { var chart = anychart.polar(); // add the lines to the chart var series = chart.polyline(getData()[0]); series.color("#4d9ece"); var series2 = chart.polyline(getData()[1]); series2.color("#ff9941"); var series3 = chart.polyline(getData()[2]); series3.color("#0db341"); var series4 = chart.polyline(getData()[3]); series4.color("#f35556"); var series5 = chart.polyline(getData()[4]); series5.color("#ad6ac7"); var series6 = chart.polyline(getData()[5]); series6.color("#16ccda"); var series7 = chart.polyline(getData()[6]); series7.color("#f873c7"); // set the maximum value of the x-scale chart.xScale().maximum(360) .ticks([0,45,52,60,75,90,110,120,135,150,165]); chart.yScale().minimum(0) .ticks([0,2,4,6,8,10]); chart.yScale().maximum(10); // format labels chart.yAxis().labels().anchor('left-center') .offsetY(-2) .format('{%value}kts') chart.xAxis().labels().format('{%value}°') chart.xAxis().ticks().length(0); // customize grids chart.xGrid().stroke({ dash: "1 5" }); chart.yGrid().stroke({ dash: "1 5" }); // set the container id chart.container("container"); relocateChart(chart); chart.draw(); chart.listen('chartDraw', function(){ relocateChart(chart); }); }); function relocateChart(chart) { chart.left(-chart.container().getBounds().width+30); } function getData() { return [[ {x: 52, value: 5.5}, {x: 60, value: 5.9}, {x: 75, value: 6.24}, {x: 90, value: 6.24}, {x: 110, value: 6.28}, {x: 120, value: 6.08}, {x: 135, value: 5.36}, {x: 150, value: 4.5}, {x: 160, value: null}, ], [ {x: 52, value: 6.6}, {x: 60, value: 6.85}, {x: 75, value: 7.02}, {x: 90, value: 7.06}, {x: 110, value: 7.21}, {x: 120, value: 7.1}, {x: 135, value: 6.65}, {x: 150, value: 5.66}, {x: 160, value: null}, ], [ {x: 52, value: 6.98}, {x: 60, value: 7.19}, {x: 75, value: 7.42}, {x: 90, value: 7.47}, {x: 110, value: 7.71}, {x: 120, value: 7.71}, {x: 135, value: 7.31}, {x: 150, value: 6.65}, {x: 160, value: null}, ], [ {x: 52, value: 7.12}, {x: 60, value: 7.34}, {x: 75, value: 7.74}, {x: 90, value: 7.95}, {x: 110, value: 8.08}, {x: 120, value: 8.36}, {x: 135, value: 7.91}, {x: 150, value: 7.25}, {x: 160, value: null}, ], [ {x: 52, value: 7.2}, {x: 60, value: 7.44}, {x: 75, value: 7.94}, {x: 90, value: 8.42}, {x: 110, value: 8.48}, {x: 120, value: 8.82}, {x: 135, value: 8.7}, {x: 170, value: 7}, {x: 175, value: null}, ], [ {x: 52, value: 7.3}, {x: 60, value: 7.53}, {x: 75, value: 8.07}, {x: 90, value: 8.72}, {x: 110, value: 8.87}, {x: 120, value: 9.27}, {x: 135, value: 9.71}, {x: 150, value: 8.34}, {x: 160, value: null}, ], [ {x: 52, value: 7.41}, {x: 60, value: 7.73}, {x: 75, value: 8.35}, {x: 90, value: 8.99}, {x: 110, value: 9.89}, {x: 120, value: 10.22}, {x: 135, value: 11.4}, {x: 150, value: 10.43}, {x: 160, value: null}, ]]; }
如果这篇关于如何使用JavaScript构建半极地图的文章对您有用,欢迎分享您的疑问和想法!
想要购买Anychart正版授权的朋友可以。
有关产品资讯的更多精彩内容,敬请关注下方的微信公众号▼▼▼
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至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幢