ExtJS 6以编程方式重置图表缩放
如何通过编程重置简单折线图的缩放(显示整个图形)?我在文档中找不到合适的方法ExtJS 6以编程方式重置图表缩放,extjs,extjs6,Extjs,Extjs6,如何通过编程重置简单折线图的缩放(显示整个图形)?我在文档中找不到合适的方法 我使用if-it meter。在CrossZoom中有一个未记录的undoZoom方法。 您可以这样使用它: chart.getInteraction('crosszoom').undoZoom(); 编辑 交叉缩放交互将历史缩放保持在zoomHistory属性中。undoZoom方法沿缩放历史一次后退一步/缩放 基于undoZoom方法,我创建了一个resetZoom方法,直接将图表重置为初始缩放: Ext.def
我使用if-it meter。在CrossZoom中有一个未记录的
undoZoom
方法。
您可以这样使用它:
chart.getInteraction('crosszoom').undoZoom();
编辑
交叉缩放交互将历史缩放保持在zoomHistory
属性中。undoZoom
方法沿缩放历史一次后退一步/缩放
基于undoZoom
方法,我创建了一个resetZoom
方法,直接将图表重置为初始缩放:
Ext.define(null, {
override: 'Ext.chart.interactions.CrossZoom',
resetZoom: function () {
var zoomMap = this.zoomHistory[0],
axes = this.getChart().getAxes();
if (zoomMap) {
for (var i = 0; i < axes.length; i++) {
var axis = axes[i];
if (zoomMap[axis.getId()]) {
axis.setVisibleRange(zoomMap[axis.getId()]);
}
}
}
this.getUndoButton().setDisabled(true);
this.zoomHistory = [];
this.sync();
}
});
Ext.define(空{
重写:“Ext.chart.interactions.CrossZoom”,
重置缩放:函数(){
var zoomMap=this.zoomHistory[0],
axes=this.getChart().getAxes();
如果(zoomMap){
对于(变量i=0;i
这是一把小提琴:
另一次编辑
如注释中所述,您可以从
undoZoom
方法和resetZoom
覆盖中看到,这一切都归结为axis方法。因此,您也可以直接将其与最小/最大值一起用作参数来重置缩放。如果您出于任何原因认为这个问题不正确,请写下原因。我确信这个任务有一个开箱即用的解决方案,因为它很琐碎,我真的在文档中找不到关于它的任何东西。回答很好,谢谢!实际上,我可以使用axis的.setVisibleRange()
和最小/最大值作为参数。您可以将其添加到您的答案中以使其完美。