Javascript C3.js从CSV中排除列

Javascript C3.js从CSV中排除列,javascript,d3.js,graph,c3.js,Javascript,D3.js,Graph,C3.js,通过从提供的CSV文件加载数据,我正在使用C3.JS创建一个多系列折线图。我可以绘制图形,但是我还没有找到。如果可以只绘制CSV中的某些列,我的图形将绘制所有CSV列 我的CSV看起来像这样: Sex,Age,L,M,S,P3,P5,P10,P25,P50,P75,P90,P95,P97 2,0,-1.298749689,34.7115617,0.046905108,31.93019666,32.25089861,32.75948527,33.65186554,34.7115617,35.851

通过从提供的CSV文件加载数据,我正在使用C3.JS创建一个多系列折线图。我可以绘制图形,但是我还没有找到。如果可以只绘制CSV中的某些列,我的图形将绘制所有CSV列

我的CSV看起来像这样:

Sex,Age,L,M,S,P3,P5,P10,P25,P50,P75,P90,P95,P97
2,0,-1.298749689,34.7115617,0.046905108,31.93019666,32.25089861,32.75948527,33.65186554,34.7115617,35.85124044,36.9534983,37.65137722,38.12110271
2,0.5,-1.440271514,36.03453876,0.042999604,33.38070525,33.68743507,34.17345861,35.02508397,36.03453876,37.11806755,38.16405088,38.82535049,39.27005698
2,1.5,-1.581016348,37.97671987,0.038067862,35.48627093,35.77560367,36.23325692,37.03281566,37.97671987,38.9853304,39.95458524,40.56517149,40.97482424
2,2.5,-1.593136386,39.3801263,0.035079612,36.98550023,37.26521982,37.70685493,38.47603153,39.3801263,40.34145495,41.2606303,41.83732218,42.22321458
var chart = c3.generate({
    data: {
                x: 'Age',
        url: '/data/cdc/cdc_female_hcageinf.csv',
                type: 'line'

        },
    tooltip: {
        show: false
    },
            point: {
        show: false
    }
});
I只绘制以年龄为X轴的百分位数(p*列)列的直线,不绘制性别、L、M和S列

当前我的图表如下所示:

一种解决方案是从CSV文件中删除列,但这是不可能的,因为我需要其他值,后者用于其他计算,我希望将所有数据保留在一个文件中

我的C3.js代码如下所示:

Sex,Age,L,M,S,P3,P5,P10,P25,P50,P75,P90,P95,P97
2,0,-1.298749689,34.7115617,0.046905108,31.93019666,32.25089861,32.75948527,33.65186554,34.7115617,35.85124044,36.9534983,37.65137722,38.12110271
2,0.5,-1.440271514,36.03453876,0.042999604,33.38070525,33.68743507,34.17345861,35.02508397,36.03453876,37.11806755,38.16405088,38.82535049,39.27005698
2,1.5,-1.581016348,37.97671987,0.038067862,35.48627093,35.77560367,36.23325692,37.03281566,37.97671987,38.9853304,39.95458524,40.56517149,40.97482424
2,2.5,-1.593136386,39.3801263,0.035079612,36.98550023,37.26521982,37.70685493,38.47603153,39.3801263,40.34145495,41.2606303,41.83732218,42.22321458
var chart = c3.generate({
    data: {
                x: 'Age',
        url: '/data/cdc/cdc_female_hcageinf.csv',
                type: 'line'

        },
    tooltip: {
        show: false
    },
            point: {
        show: false
    }
});

我不确定是否有c3.js配置或方法可以这样做,或者javascript方法是必要的。

受@Armani的启发,我最终这样做了,这是将d3.csv函数与c3结合使用,因为我没有找到使用c3 URL的方法

  • 首先,我使用D3将CSV文件加载到JSON对象中
  • 根据需要修改数据(不过滤)
  • 向C3提供json对象
  • 在c3调用中使用“keys”属性仅显示我想要的字段
  • d3.csv(_数据路径,函数(d){
    var数据=d;
    if(configdata.axis.x.source_units==“meses”和&configdata.axis.x.units==“años”)
    {
    数据[configdata.axis.x.property\u key]=数据[configdata.axis.x.property\u key]/12;
    }
    返回数据;
    },函数(错误,数据){
    如果(!错误)
    {
    var百分位数=[];
    configdata.percentilesData.forEach(函数(p){
    百分位推(p.name);
    });
    var x_axis_label=configdata.axis.x.label+'('+configdata.axis.x.units+');
    变量y_axis_label=configdata.axis.y.label+'('+configdata.axis.y.units+');
    var图表=c3.0({
    bindto:'图表',
    数据:{
    json:数据,
    键入:“行”,
    关键点:{
    x:configdata.axis.x.property\u键,
    值:百分位数
    }
    },
    轴线:{
    y:{
    标签:y\U轴\U标签
    },
    x:{
    标签:x_轴_标签
    }
    },
    工具提示:{
    节目:假
    },
    要点:{
    节目:假
    }
    });
    }
    });
    
    您必须向文件的列/键添加筛选器

    d3.csv("yourfile.csv", function(csv) {
     csv = csv.filter(function(key) { 
      return key != "Sex" && key != "L" && key != "M" && key != "S" ;
       }); 
     });
    

    不确定这个解决方案,但无论如何,您都必须向文件的列/键添加一个过滤器-->
    d3.csv(“yourfile.csv”,function(csv){csv=csv.filter(function(key){return key!=“Sex”&&key!=“L”&&key!=“M”&&key!=“s”};})在写完我的问题后,我也开始考虑使用d3.csv来实现这一点。谢谢,请将您的评论作为答案进行投票。