Javascript C3.js从CSV中排除列
通过从提供的CSV文件加载数据,我正在使用C3.JS创建一个多系列折线图。我可以绘制图形,但是我还没有找到。如果可以只绘制CSV中的某些列,我的图形将绘制所有CSV列 我的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
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(_数据路径,函数(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来实现这一点。谢谢,请将您的评论作为答案进行投票。