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

C3 Chart从URL加载数据时触发TypeError错误,寻求技术帮助

解决C3图表加载CSV时的d3.request is not a function错误

嘿,这个问题我碰到过!咱们一步步来解决它~

错误原因剖析

你看到的Uncaught TypeError: $$.d3.request is not a function,核心问题是C3和你使用的D3版本不兼容:

  • 早期C3版本依赖D3的d3.request API来加载远程数据
  • 但D3 v5及以上版本已经彻底移除了d3.request,换成了d3-fetch系列方法(比如d3.csv())
  • 当C3尝试调用一个不存在的方法时,自然就抛出了这个错误

另外还要提一句:你的grade_year.csv格式也有问题,标准CSV应该是每行一条数据,列用逗号分隔,你原来的写法会导致C3无法正确解析。

解决方案

方案1:降级D3到兼容版本(最简单)

如果不想改动太多代码,直接把D3换成v4.x版本,和C3的经典版本搭配使用:

<!-- 引入兼容的D3和C3版本 -->
<script src="https://d3js.org/d3.v4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/c3/0.7.20/c3.min.js"></script>

<!-- 你的原有代码可以直接用 -->
<script>
var chart = c3.generate({
    bindto: '#chart',
    data: {
        url: 'static/CSV/Chart_data/grade_year.csv'
    }
});
</script>

同时修正你的grade_year.csv为标准格式:

AC_YEAR,Calculus
2010,5.718
2011,6.052
2012,5.29
2013,5.238
2014,5.037
2015,4.919

方案2:保留新版D3,手动加载数据传给C3

如果你想继续使用D3 v5+,可以自己用D3的d3.csv()先加载数据,再转换成C3需要的格式传入:

<!-- 引入新版D3和C3 -->
<script src="https://d3js.org/d3.v7.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/c3/0.7.20/c3.min.js"></script>

<script>
// 先用D3加载CSV数据
d3.csv('static/CSV/Chart_data/grade_year.csv')
  .then(function(rawData) {
    // 转换成C3需要的columns格式
    var yearColumn = ['AC_YEAR'];
    var calculusColumn = ['Calculus'];
    
    rawData.forEach(function(row) {
      yearColumn.push(row.AC_YEAR);
      calculusColumn.push(parseFloat(row.Calculus));
    });
    
    // 生成C3图表
    var chart = c3.generate({
      bindto: '#chart',
      data: {
        columns: [yearColumn, calculusColumn]
      }
    });
  })
  .catch(function(err) {
    console.error('加载CSV出错了:', err);
  });
</script>

额外检查项

  • 确认static/CSV/Chart_data/grade_year.csv的路径正确,在浏览器地址栏输入这个路径能直接下载/查看文件,避免404错误
  • 如果是本地开发,注意跨域问题(比如用file://打开页面可能无法加载本地CSV,建议用本地服务器比如python -m http.server启动)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:40:39