2016-01-27 41 views
0

plotly.js 2D直方圖和等高線圖自動生成一個z軸範圍,該範圍適用於要繪製的數據集中的整個z值範圍。這很好,但是當我單擊並拖動圖形進行放大時,我希望z軸範圍也可以放大以僅適應當前顯示的z值範圍;相反,z軸永遠不會改變。這裏有一個codepen(從plotly例子分叉,感謝plotly)一起玩:http://codepen.io/anon/pen/MKGyJP以縮放形式記錄js z軸

(codepen聯代碼:

var x = []; 
var y = []; 
for (var i = 0; i < 500; i ++) { 
    x[i] = Math.random(); 
    y[i] = Math.random() + 1; 
} 

var data = [ 
    { 
    x: x, 
    y: y, 
    type: 'histogram2d' 
    } 
]; 
Plotly.newPlot('myDiv', data); 

這似乎是非常普通的行爲 - 我錯過文檔中的某個選項可以執行此操作嗎?

如果沒有內置選項來執行此操作,則可以接受的替代解決方案是在縮放回調中手動設置新的z限制,該示例很容易實現:http://codepen.io/plotly/pen/dogexw - 在這種情況下,我的問題變爲,是否有一種方便的方法來顯示最小和最大z?

由於提前,

回答

0

plotly.js沒有在目前特定的放大回調(按照這個issue更新)。

一個替代方案是添加的模式欄按鈕更新colorscale範圍:

Plotly.newPlot('myDiv', data, {}, { 
    modeBarButtonsToAdd: [{ 
    name: 'click here to update the colorscale range', 
    click: function(graphData) {    
     var xRange = graphData.layout.xaxis.range, 
      yRange = graphData.layout.yaxis.range; 

     var zMin, zMax; 

     // code that would compute the colorscale range 
     // given xRange and yRange 
     // for example given these values: 
     zMin = 10; 
     zMax = 20; 

     Plotly.restyle('myDiv', {zmin: zMin, zmax: zMax}); 
    } 
    }] 
}); 

完整示例:http://codepen.io/etpinard/pen/JGvNjV