我有一个包含多个图表和多个值轴的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/
但是,您可能会注意到空级别不相同,即每个图表在不同网格线处具有空级别。有没有办法强制所有图表使用相同的空值?
答案 0 :(得分:0)
我找到的唯一方法是使三个轴使用相同的" null"值是简单地找到每个值的最大绝对值,并根据AmCharts的文档定义ValueAxis时将其设置为maximum
和minimum
参数。
最后,您将有三个变量来存储绝对值maxVisits
,maxHits
,maxViews
。
然后您设置maximum
和minimum
参数,如下所示:
"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
。
答案 1 :(得分:0)
这是我提出的最佳解决方案:
利用:
"synchronizeWith": "v1",
"synchronizationMultiplier": sync
例如,在您的v2轴上,使用' synchronizeWith'并将值设置为要同步到的轴。对于乘数,您希望在两个轴中查找最大值,并将较小的值除以较大的值,从而为您提供比率。这个比率是你的乘数。