我正在寻找一种向d3js平行坐标添加分类数据的方法. D3js对我来说是新手,我可以理解正在做的一些事情,但却无法找到一种方法.并行集不是一个好选择,因为我的大多数数据都是连续的.
@H_502_2@如果您考虑汽车示例,我希望能够按轴上的品牌进行过滤(例如过滤器,以便仅显示福特的数据).我假设需要一个变量来定义每辆车(例如标致,福特,宝马,奥迪等……)
@H_502_2@这是汽车的例子.
@H_502_2@http://bl.ocks.org/1341281
@H_502_2@感谢任何响应的人.
解决方法
实际上你需要的只是一个有序的尺度!轴将负责其余部分.
@H_502_2@看看here.
@H_502_2@基本上我改变了:
x.domain(dimensions = d3.keys(cars[0]).filter(function(d) { return d != "name" && (y[d] = d3.scale.linear() .domain(d3.extent(cars,function(p) { return +p[d]; })) .range([h,0])); }));@H_502_2@至:
x.domain(dimensions = d3.keys(cars[0]).filter(function(d) { if(d === "name") return false; if(d === "colour") { y[d] = d3.scale.ordinal() .domain(cars.map(function(p) { return p[d]; })) .rangePoints([h,0]); } else { y[d] = d3.scale.linear() .domain(d3.extent(cars,function(p) { return +p[d]; })) .range([h,0]); } return true; }));@H_502_2@我在数据中添加了一个字符串值分类列.对于硬编码我有点懒,哪个属性是字符串值的.