Javascript 在缩放时重新绘制js z轴
plotly.js二维直方图和等高线图会自动生成z轴范围,该范围容纳正在绘制的数据集中z值的整个范围。这很好,但当我单击并拖动绘图以放大时,我希望z轴范围也放大,以仅容纳当前显示的z值范围;相反,z轴从不改变。这里有一个代码笔(来源于plotly示例,谢谢plotly)可以使用: (代码笔代码内联:Javascript 在缩放时重新绘制js z轴,javascript,visualization,plotly,Javascript,Visualization,Plotly,plotly.js二维直方图和等高线图会自动生成z轴范围,该范围容纳正在绘制的数据集中z值的整个范围。这很好,但当我单击并拖动绘图以放大时,我希望z轴范围也放大,以仅容纳当前显示的z值范围;相反,z轴从不改变。这里有一个代码笔(来源于plotly示例,谢谢plotly)可以使用: (代码笔代码内联: var x = []; var y = []; for (var i = 0; i < 500; i ++) { x[i] = Math.random(); y[i] = Ma
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);
var x=[];
变量y=[];
对于(变量i=0;i<500;i++){
x[i]=Math.random();
y[i]=Math.random()+1;
}
风险值数据=[
{
x:x,
y:y,
类型:“histogram2d”
}
];
Plotly.newPlot('myDiv',数据);
)
这似乎是非常传统的行为——我是否在文档中遗漏了这样做的选项
如果没有内置选项来执行此操作,可接受的替代解决方案是在缩放回调中手动设置新的z限制,根据本例,这很容易实现:-在这种情况下,我的问题是,是否有一种方便的方法来获取当前显示的最小和最大z
提前感谢,plotly.js目前没有特定于缩放的回调(请按照此进行更新) 另一种方法是添加一个模式栏按钮来更新色标范围:
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});
}
}]
});
完整示例: