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

2023-09-07 12:06:28 作者:别再为爱纠缠

考虑以下几行的数据序列:

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

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

HTML5 Chart.js 框架

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

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

有没有办法将两者结合起来,或者我错过的某个选项来控制它们以达到我在这里寻找的结果?

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

解决方案

Demo &代码:

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

解释:

使用 scatter 图表绘制点添加(编写)了一个 chartjs 插件,它可以从beforeUpdate 上的极坐标到笛卡尔坐标,因此您不必担心每次更新前的转换Made x &y 网格(不是通过原点的轴)通过添加 gridLines: { color: 'transparent' }ticks: { display: false }使两个轴的 minmax(ticks 中的选项)相等,以使原点位于中心添加了 radialLinear 极坐标网格的比例

(更新 1)

添加了一个工具提示标签回调来显示工具提示为 (r,θ) 而不是默认的 (x,y)

(更新 2)