当 window 处于边缘时,AmStockChart 缩放 window

AmStockChart zooms window when window is at the edge

Here 是 AmSerialChart 的示例,您可以在其中使用滚动按钮在数据上滚动 window。当您到达结尾(或开头)并继续滚动时,window 将保持相同的宽度。

Here 是另一个示例,使用 AmStockChart。 window 使用稍微不同的方法放大:stockCharts 不存在 zoomToIndexes,因此使用 "zoom" 方法。

var chartData = generateChartData();
var chart = AmCharts.makeChart("chartdiv", {
    "categoryAxesSettings": {
        minPeriod: "fff",
    },
    "chartScrollbarSettings": {
        graph: "g1",
        usePeriod: "fff",
    },
    "dataSets": [
        {
            mouseWheelZoomEnabled: false,
            categoryField: "date",
            dataProvider: chartData,
            fieldMappings: [
                {
                    fromField: "gg1",
                    toField: "gg1"
                }, {
                    fromField: "gg2",
                    toField: "gg2"
                }
            ],
        }
    ],
    "mouseWheelScrollEnabled": true,
    "panels": [
        {
            stockGraphs: [
                {
                    id: "g1",
                    valueField: "gg1",
                    type: "step",
                }
            ],
        }, {
            stockGraphs: [
                {
                    valueField: "gg2",
                    type: "step",
                }
            ],
        }
    ],
    "type": "stock",
});

当您在 StockChart 中向左滚动时,window 会缩小! 到目前为止,我无法确定 SerialChart 不减小尺寸而 StockChart 减小尺寸的原因。我确实在 SO 上找到了一个 post 说要将 mouseWheelZoomEnabled 设置为 false,但是这个选项是针对 SerialChart,而不是 StockChart。

我想可以在滚动事件中添加一个监听器,并防止 window 在与左侧或右侧碰撞时缩小尺寸,但是......我假设有一个更好的理由。

我的问题:如何防止 window 在 AmStockChart 中缩小?

您必须在 panelsSettings 中设置 minSelectedTime 才能在股票图表中实现相同的行为。请注意,这也将防止滚动条在直接拖动滑块时缩放到较小的时间范围:

var chart = AmCharts.makeChart("chartdiv", {
  panelsSettings: {
    mouseWheelZoomEnabled: false, 
    minSelectedTime: 4.32e+9,
    mouseWheelScrollEnabled: true
  },
  // ...
});

Demo