amCharts对齐值'空级

时间:2017-05-23 07:56:04

标签: javascript charts amcharts

我有一个包含多个图表和多个值轴的Amchart图表。值可能完全不同,例如,一个图表的值可能在-3000到3000之间变化,而另一个图表的值在0-40之间。

我想要的是代表所有图表,以便它们都可见。所以,我使用'synchronizeGrid'选项。

这是我目前的代码:

  "synchronizeGrid": true,
  "valueAxes": [{
    "id": "v1",
    "axisColor": "#FF6600",
    "axisThickness": 2,
    "axisAlpha": 1,
    "position": "left"
  }, {
    "id": "v2",
    "axisColor": "#FCD202",
    "axisThickness": 2,
    "axisAlpha": 1,
    "offset": 50,
    "position": "left"
  }, {
    "id": "v3",
    "axisColor": "#B0DE09",
    "axisThickness": 2,
    "gridAlpha": 0,
    "offset": 100,
    "axisAlpha": 1,
    "position": "left"
  }],

https://jsfiddle.net/fungxbsh/

但是,您可能会注意到空级别不相同,即每个图表在不同网格线处具有空级别。有没有办法强制所有图表使用相同的空值?

2 个答案:

答案 0 :(得分:0)

我找到的唯一方法是使三个轴使用相同的" null"值是简单地找到每个值的最大绝对值,并根据AmCharts的文档定义ValueAxis时将其设置为maximumminimum参数。

最后,您将有三个变量来存储绝对值maxVisitsmaxHitsmaxViews

然后您设置maximumminimum参数,如下所示:

"valueAxes": [{
    "id": "v1",
    "axisColor": "#FF6600",
    "axisThickness": 2,
    "axisAlpha": 1,
    "position": "left",
    "maximum": maxVisits,
    "minimum": -maxVisits
  }, {
    "id": "v2",
    "axisColor": "#FCD202",
    "axisThickness": 2,
    "axisAlpha": 1,
    "position": "right",
    "maximum": maxHits,
    "minimum": -maxHits
  }, {
    "id": "v3",
    "axisColor": "#B0DE09",
    "axisThickness": 2,
    "gridAlpha": 0,
    "offset": 50,
    "axisAlpha": 1,
    "position": "left",
    "maximum": maxViews,
    "minimum": -maxViews
  }]

最后,您需要再次将synchronizeGrid参数设置为false

See the full example here.

答案 1 :(得分:0)

这是我提出的最佳解决方案:

利用:

            "synchronizeWith": "v1",
            "synchronizationMultiplier": sync

例如,在您的v2轴上,使用' synchronizeWith'并将值设置为要同步到的轴。对于乘数,您希望在两个轴中查找最大值,并将较小的值除以较大的值,从而为您提供比率。这个比率是你的乘数。