2016-05-27 91 views
2

我繪製了散點圖但我只想替換刻度標籤。它不應該再次重繪。我用強制指示scatterplot需要整數的x和y軸,繪製後我想要替換y軸標籤。這裏是只需更改刻度標籤

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

我想更換d.sepalLength的只是名稱d.name的plunker。警報顯示正確的值,但它們沒有正確地附加在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

相關問題