在缩放时略调js z轴

时间:2016-01-27 19:05:39

标签: javascript visualization plotly

plotly.js 2D直方图和等高线图自动生成z轴范围,该范围适应绘制的数据集中的整个z值范围。这可以开始,但是当我在绘图上单击并拖动以放大时,我希望z轴范围也可以放大以仅适应当前显示的z值范围;相反,z轴永远不会改变。这是一个编写代码(从剧情的例子中分离出来,谢谢你的情节)来玩:http://codepen.io/anon/pen/MKGyJP

(codepen code inline:

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?

提前致谢,

1 个答案:

答案 0 :(得分:0)

plotly.js目前没有特定于缩放的回调(按此issue进行更新)。

另一种方法是添加模式栏按钮以更新色阶范围:

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