更改雷达图中特定网格线的 borderDash

Changing borderDash for specific gridLines in radar chart

我正在使用 ChartJS 生成雷达图。

我希望最后一条 gridLine(最外面的)保持实线,而其他的都是虚线。

图片示例:

我发现可以在 this pull request 中使用不同的 borderDash,它还显示了它的实际图像,但尚未找到编写脚本的方法。 (编辑:链接的拉取请求似乎已经进入主版本,计划与 V3.0 一起发布 - 这意味着它尚不可用(?))

脚本的快速示例代码:

scale: {
gridLines: {
    borderDash: function(context) {
        return context.index % 2 === 0 ? [2, 3] : [10, 10];
    },
},

您已经可以使用 Chart.js 版本 3,它可以作为 Chart.js 3.0.0-beta.

使用

只需将以下 script 标记添加到您的 HTML 页面。

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.0.0-beta/chart.min.js"></script>

请查看以下代码片段,看看它是如何工作的。

new Chart("radar-chart", {
  type: 'radar',
  data: {
    labels: ["A", "B", "C", "D", "E"],
    datasets: [{
      data: [25.48, 54.16, 7.61, 8.06, 4.45],
      backgroundColor: "rgba(255,99,132,0.2)",
      borderColor: "rgba(255,99,132,1)"
    }]
  },
  options: {
    legend: {
      display: false
    },
    scale: {
      ticks: {
        min: 0,
        max: 60,
        stepSize: 10
      },
      gridLines: {
        lineWidth: 2,
        color: "lightgreen",
        borderDash: context => context.index == 6 ? [] : [6, 4]
      }
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.0.0-beta/chart.min.js"></script>
<canvas id="radar-chart" height="120"></canvas>