3

私はd3.js(およびstackoverflow)を初めて使用し、現在、平行座標の例を使用しています。現在、データに「row」という名前の2次元配列を使用しています。各縦軸の上には「0」または「1」または「2」などのラベルがあります。ただし、各縦軸に行[0][i]のテキストでラベルを付けたいと思います。0、1、2という数字はデータムから来ていると思います。代わりにrow[0][i]のラベルを使用する方法について何か提案はありますか?私はかなり基本的な何か間違ったことをしているのではないかと思います。関連するコードは次のとおりです。ありがとう !

    // Extract the list of expressions and create a scale for each.
    x.domain(dimensions = d3.keys(row[0]).filter(function (d, i) {
        return row[0][i] != "name" &&
            (y[d] = d3.scale.linear()
                .domain(d3.extent(row, function (p) { return +p[d]; }))
                .range([height, 0]));
    }));

    // Add a group element for each dimension.
    var g = svg.selectAll(".dimension")
                .data(dimensions)
                .enter().append("g")
                .attr("class", "dimension")
                .attr("transform", function (d) { return "translate(" + x(d) + ")"; });

    // Add an axis and title.
    g.append("g")
            .attr("class", "axis")
            .each(function (d) { d3.select(this).call(axis.scale(y[d])); })
            .append("text")
            .attr("text-anchor", "middle")
            .attr("y", -9)
            .text(String);//.text(String)
4

1 に答える 1

1

制御された軸のセット (3 つの軸など) しかない場合は、次のように個別に設定することができます...

svg.append("text").attr("class","First_Axis")
    .text("0")
    .attr("x", first_x_coordinate)
    .attr("y", constant_y_coordinate) 
    .attr("text-anchor","middle");

svg.append("text").attr("class","Second_Axis")
    .text("1")
    .attr("x", first_x_coordinate + controlled_offset)
    .attr("y", constant_y_coordinate) 
    .attr("text-anchor","middle");

svg.append("text").attr("class","Third_Axis")
    .text("2")
    .attr("x", first_x_coordinate + controlled_offset*2)
    .attr("y", constant_y_coordinate) 
    .attr("text-anchor","middle");

ただし、データに依存する軸を動的に配置した場合は、固定の「オフセット」に基づいて x 座標を決定しながら、y 座標を一定に保持する関数を使用して軸情報を配置することができます (つまり、データ駆動型の軸配置)。 . 例えば...

svg.append("text")
    .attr("class",function(d, i) {return "Axis_" + i; })
    .text(function(d,i) {return i; })
    .attr("x", function(d, i) { return (x_root_coordinate + x_offset_value*i); })
    .attr("y", constant_y_coordinate) 
    .attr("text-anchor","middle");

これが役立つことを願っています。

フランク

于 2012-07-29T15:39:15.220 に答える