2016-05-27 4 views
2

私は散布図をプロットしましたが、チックラベルだけを交換したいと思います。もう一度元に戻すべきではありません。私はx軸とy軸の整数を必要とする強制的な指向性散布図を使用し、プロット後にy軸のラベルを置きたい。ここで私はにd.nameするd.sepalLengthの名前だけを交換したいplunkerちょうどチックラベルを変更する

https://plnkr.co/edit/ufnBOwQEoTOrP1mUTKhC?p=preview

です。アラートは正しい値を示しますが、y軸に正しく追加されていません。チックラベルを置き換えるための以下のコードを追加しました。

var yAxis = d3.svg.axis() 
    .scale(y) 
    .orient("left") 
    .tickFormat(d3.extent(data, function(d) { alert(d.name);return d.name; })); 

答えて

3

強引なやり方は、ダニにレンダリングされる値は、あなたの配列に存在している場合ので、より堅牢なため名前

var data =[ 
    {sepalLength: "0", sepalWidth: 3.5, name: "AT"}, 
    {sepalLength: "0", sepalWidth: 3.5, name: "AT"}, 
    {sepalLength: "0", sepalWidth: 3.5, name: "AT"}, 
    {sepalLength: "0", sepalWidth: 3.5, name: "AT"}, 
    {sepalLength: "1", sepalWidth: 3.0, name: "AS"}, 
    {sepalLength: "2", sepalWidth: 2.5, name: "AM"}, 
    {sepalLength: "3", sepalWidth: 2.0, name: "CS"}, 
    {sepalLength: "4", sepalWidth: 1.5, name: "CT"}, 
    {sepalLength: "5", sepalWidth: 1.0, name: "CX"} 
] 

var yAxis = d3.svg.axis() 
    .scale(y) 
    .orient("left") 
    .tickFormat(function(d, i) { 
     var inData = data.filter(function (v) { return +v.sepalLength === d }) 
     return inData.length ? inData[0].name : d 
    }); 

に置き換える場合は、検索することです助けてくださいソリューションあなたはそれが働いたsepalLength

demo

+0

に基づいてscale.tickValuesとダニのための固定値を設定する必要があります。どうもありがとう。 – user123

+0

私はここで質問があります(http://stackoverflow.com/q/41385010/1735836)あなたが私を助けることができるかもしれません。 – Patricia

関連する問題