You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用showLine的vue-chartjs散点图无法设置line tension问题

解决vue-chartjs散点图tension设置后线条消失的问题

问题原因

在Chart.js的散点(scatter)图表中,启用tension(曲线张力)时,默认的cubicInterpolationMode为'default',该模式在散点图的数据结构下无法正确生成平滑曲线,导致线条消失。

解决方案

在数据集配置中添加cubicInterpolationMode: 'monotone',同时确保tension设置为0-1之间的有效值,具体修改如下:

修改后的配置代码

const chartOptions = {
    responsive: true,
    maintainAspectRatio: true,
    plugins: {
        legend: false
    }
};

const chartData = ref({
    datasets: [
        {
            data: [
                { x: 0, y: 5 },
                { x: 3, y: 4 },
                { x: 5, y: 7 },
                { x: 8, y: 13 },
                { x: 13, y: 6 },
                { x: 18, y: 2 },
                { x: 25, y: 11 },
            ],
            backgroundColor: "#ED1369",
            borderColor: "#ED1369",
            showLine: true,
            tension: 0.4, // 设置0到1之间的张力值,调整曲线平滑度
            cubicInterpolationMode: 'monotone', // 关键配置,确保曲线正确渲染
            pointRadius: 3.5,
            pointHoverRadius: 3.5,
            borderWidth: 2
        }
    ]
});

关键说明

  • cubicInterpolationMode: 'monotone':该模式会根据数据的单调性生成平滑曲线,避免出现异常波动,同时确保散点图的线条在设置tension后正常显示。
  • 若使用Chart.js v3+版本,需使用tension而非lineTension(v3已废弃lineTension)。
  • 确保图表类型为scatter,vue-chartjs中需正确引入并使用<Scatter>组件:
    <script setup>
    import { Scatter } from 'vue-chartjs'
    import { Chart, registerables } from 'chart.js'
    
    Chart.register(...registerables)
    </script>
    
    <template>
      <Scatter :data="chartData" :options="chartOptions" />
    </template>
    

内容的提问来源于stack exchange,提问作者Jacob Dunbar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:11:17