使用 Chart.js 实现任意位置 50 个点的雷达图的最有效方法是什么

2023-12-27

考虑如下的数据序列:

data = [{angle:1.2,value:1.2},...,{angle:355.2: value:5.6}];

我想在径向缩放图上显示这些数据(即指示每个点的值有多高的圆形带)以显示角度与值。每个数据集的角度都会发生微小但无法控制的变化,但图表周围总会有大约 50 个角度相当均匀地分布。

看起来像chart.js有两个不太符合要求的选项:

  • 雷达图似乎需要每个点一个标签,但没有明显的方法来控制这些标签的应用位置。
  • 我可以计算 x/y 坐标的 x-y 散点图,但它没有径向刻度来帮助可视化每个点的值。

有没有办法将两者结合起来,或者我错过了一些选项来控制它们以实现我在这里寻找的结果?

编辑 - 例如,这显示了数据但缺少径向刻度:

https://jsfiddle.net/7d7ghaxx/4/ https://jsfiddle.net/7d7ghaxx/4/

**Edit2 - 这是我期望看到的结果:


演示和代码:

https://stackblitz.com/edit/js-jp4xm4?file=index.js https://stackblitz.com/edit/js-jp4xm4?file=index.js

解释:

  1. Used a scatter http://www.chartjs.org/docs/latest/charts/scatter.html图表绘制点
  2. 添加(编写)了一个chartjsplugin http://www.chartjs.org/docs/latest/developers/plugins.html将点从极坐标转换为笛卡尔坐标beforeUpdate所以你不必担心每次更新前的转换
  3. 通过添加隐藏 x 和 y 网格(不是通过原点的轴)gridLines http://www.chartjs.org/docs/latest/axes/styling.html#grid-line-configuration: { color: 'transparent' } and ticks http://www.chartjs.org/docs/latest/axes/styling.html#tick-configuration: { display: false }
  4. Made min and max(选项中ticks) 两个轴相等,因此原点位于中心
  5. Added a radialLinear http://www.chartjs.org/docs/latest/axes/radial/linear.html极坐标网格的比例

(更新1)

  1. Added a 工具提示标签回调 http://www.chartjs.org/docs/latest/configuration/tooltip.html#label-callback将工具提示显示为 (r,θ) 而不是默认的 (x,y)

(更新2)

  1. 添加(写)了一个beforeDraw plugin http://www.chartjs.org/docs/latest/developers/plugins.html来填补ctxOP想要的浅蓝色

PS:(指出只是为了有点竞争力)我使用了chartjs(与其他答案不同),因为OP想要一个chartjs解决方案,因为问题中清楚地写着:“使用chart.js”。可能有比 Chartjs 更好的解决方案,但这无关紧要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Chart.js 实现任意位置 50 个点的雷达图的最有效方法是什么 的相关文章

随机推荐

  • 在 Hive 表中插入覆盖分区 - 值重复

    我创建了一个 Hive 表不分区表并使用选择查询将数据插入已分区蜂巢表 参考网站 https blog safaribooksonline com 2012 12 03 tip partitioning data in hive 通过上面的
  • 如何在一切都清楚的情况下重新启动 googlecolab 运行时?

    我在 colab 上安装了许多库和许多设置 现在我想清除我的 colab 帐户上的所有设置 文件 库和所有内容 有可能吗 To drop your current backend and start fresh with a new one
  • 角度材质对话框在导航后未关闭

    我正在开发一个显示数据表中实体概述的应用程序 每个实体都有链接实体 这些实体在列中显示为 xxx 链接实体 当用户单击该列的值时 将打开一个材料对话框 显示链接实体的列表 这些都是到其他实体的链接 单击这些链接之一后 会显示实体的正确页面
  • 如何提高 Google Big Query 每日查询配额

    我们正在运行批处理 并达到每日查询配额 20 000 有办法提高限额吗 thanks 我们通常很乐意提高每天的查询限制 目前为 40k 天 一般来说 它是为了防止滥用场景 使用 BigQuery 作为计算器的人 例如SELECT 17 32
  • 我可以在 1 个应用程序中拥有同一 UserControl 的多个实例吗?

    我正在创建一个文本编辑器类型应用程序 我可以通过选项卡打开多个编辑器 在我的第一次尝试中 我使用了简单的TextBoxes 编辑文本 一切正常 然后我创建了一个UserControl封装文本框 按钮来执行文本操作 例如 粗体 斜体等 我发现
  • 如何添加带有嵌套资源的删除路线 Rails 4

    Todo 有很多项目 我正在尝试添加一个链接以从待办事项列表中删除项目 我尝试过通过 id 在待办事项列表下查找项目的变体 但我无法弄清楚 这是基于我所做的更改的最新错误 我不知道如何解决这个问题 错误信息 No route matches
  • 在 R 函数中调用 SQL 函数

    我想知道是否可以致电SQL内的功能R功能 举例来说 我有这个虚拟数据并且SQL函数写在Postgres 9 3 CREATE TABLE tbl id VARCHAR 2 PRIMARY KEY name TEXT year born NU
  • ServiceStack - 是否有最新的、完整的文档?

    我正在尝试了解 ServiceStack 虽然它声称它拥有非常好的文档 但到目前为止情况似乎并非如此 是否有文档实际说明要使用哪些接口 基类以及它们的作用 只是 有一堆问题 并且能找到很少的答案 新的API设计 https github c
  • 如何安装气体预处理器?

    抱歉这个愚蠢的问题 我想安装气体预处理器 https github com yuvi gas preprocessor 但我只是不知道如何做到这一点 我与 pl 文件有什么关系 如何安装脚本 提前致谢 亚历克斯 好吧 我遇到了同样的问题 找
  • 如何在 jupyter 笔记本中添加/编辑代码片段?

    我尝试按照扩展的自述文件中给出的说明进行操作 我使用 Windows 并打开我的笔记本 我使用存储在目录中的 jupyter notebook exe Anaconda3 脚本 在 Anaconda3 目录中 我转到子目录 Anaconda
  • OLAP 中的锁定问题是什么?

    在一家当地金融机构 我因为向他们表达了我的观点 他们的程序员的痴迷 而被他们的程序员斥责 b 他们的 MS SQL Server 2005 OLAP SSAS 数据库中的锁定问题对我来说没有多大意义 OLTP 数据库是 SQL Server
  • 在 jQuery UI 日期选择器上禁用一周中的特定日期[重复]

    这个问题在这里已经有答案了 可能的重复 jQuery UI 日期选择器可以禁用周六和周日 以及节假日 吗 https stackoverflow com questions 501943 can the jquery ui datepick
  • VB.Net 列表.查找。将值传递给谓词

    使用带有自定义谓词的 List Find 时遇到一些问题 我有一个函数可以做到这一点 private function test Dim test As Integer keys Find AddressOf FindByOldKeyAnd
  • 在 Angular 2 应用程序上使用 Google Adsense 广告

    有没有办法在 Angular 2 应用程序上使用 Google Adsense 广告 我见过这个Angular 2 组件中的 Google AdSense 广告 https stackoverflow com questions 37580
  • Linux 在堆上的类中分叉

    当我遇到以下情况时会发生什么 A 类 保留动态分配的对象 B 它将创造和摧毁这些 B类 有一个由A调用的execute函数 execute将fork 子进程将使用execvp来运行另一个进程 但是 可以设置一个标志 以便父进程不会等待子进程
  • 刷新 MKMapView 上的 MKAnnotationView

    我想为我的自定义 MKAnnotationView 同步加载图像 我已经在使用 EGOImageView 框架 它与 UITableViews 配合得很好 但我无法让它在 MKMapView 上工作 图像似乎已加载 但我无法在地图上刷新它们
  • 在单元测试中但不在主程序中出现错误“Provider com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl not found”

    我正在用 C 构建一个应用程序 它使用 com gargoylesoftware htmlunit WebClient 来访问和检索网页中的信息 我的应用程序在主项目中运行良好 但是当我尝试构建单元测试来测试项目类时 出现以下错误 Fact
  • getDispatcherType() 对于 HttpServletRequest 类型未定义[重复]

    这个问题在这里已经有答案了 我已将 Java 动态 Web 项目导入到 Eclipse IDE 中 该项目已在 Eclipse IDE 中实现并正常工作 我收到一个 getDispatcherType 类型未定义HttpServletReq
  • 使用金字塔进行金字塔认证

    在金字塔文档中 Sqlalchemy Dispatch 教程使用虚拟数据security py 我需要使用mysql数据 所以我是这样实现的 我的登录代码 view config route name login renderer json
  • 使用 Chart.js 实现任意位置 50 个点的雷达图的最有效方法是什么

    考虑如下的数据序列 data angle 1 2 value 1 2 angle 355 2 value 5 6 我想在径向缩放图上显示这些数据 即指示每个点的值有多高的圆形带 以显示角度与值 每个数据集的角度都会发生微小但无法控制的变化