【问题标题】:Highcharts: make y-axis extremes the same for two data series with different unitsHighcharts:使两个具有不同单位的数据系列的 y 轴极值相同
【发布时间】:2016-10-14 12:48:41
【问题描述】:

我有一个图表,其中两个图表/系列有不同的单位。因此 y 轴是不同的,极值是分开计算的。

有没有办法告诉 Highcharts 在所有图表/系列中使用相同的比例,尽管单位不同?

下面是图表。例如,相关的 y 轴是右侧的。单位不同:“W/m^2”和“kW/kWp”,但我希望比例相同。

当然,一种方法是手动方法:在我的控制器中,检查所有数据系列并检查所有数据系列的整体最小值和最大值,然后通过手动应用极值

chart.yAxis[i].setExtremes(min, max)

但我想知道 Highcharts 是否有任何方法(例如配置选项)来实现这一点。 到目前为止,我在文档中没有找到任何内容。

谢谢。

【问题讨论】:

  • (因为您已经有了答案)如果它们的比例相同,为什么还要首先设置两个轴?似乎有很多额外的空间可用于冗余信息。
  • 因为单位标签不同。 “W/m2”与“kW/kWp”。这不能用一个轴来解决。
  • 传奇?每行末尾的标签?显然做对你有用的事情,但是用一个轴无法解决的说法是没有意义的。您占用了整个额外轴的空间,除了为标签留出位置之外没有其他目的。您可以只应用一个标签,而无需构建第二个完全冗余的轴。
  • 我不明白这将如何工作。我不是指一个标签,我是指两个标签(参见“W/m2”和“kW/kWp”的对齐方式和位置)。就像我的截图一样。但也在我的应用程序中,用户有一个按钮来切换所有轴的链接或不链接,所以我需要将它分开。对了,我用了一些额外的坐标轴空间,不过没关系,屏幕够大。图例不是最理想的,因为图例不会按比例显示信息。此外,我的应用程序允许独立于图表显示/隐藏每个图表,因此我也需要将轴分开。
  • 1) 在 Highcharts 中,您可以在任意位置放置任意数量的标签 2) 您可以使用图例,因为您要识别的实际上是系列的内容 3) 您可以添加数据标签到每个系列的最后一点,确定适当的单位等。

标签: highcharts


【解决方案1】:

有一个选项可以实现这一点。您可以通过 linkedTo 属性将一个轴链接到另一个轴。

来自 API:

linkedTo:号码

该轴链接到的另一个轴的索引。当轴链接到主轴时,它将采用与主轴相同的极值,但由 min 或 max 或 setExtremes 指定。它可用于显示附加信息,或通过复制刻度来轻松阅读图表。

http://api.highcharts.com/highcharts/yAxis.linkedTo

示例:http://jsfiddle.net/n8tokqru/

    yAxis: [{

    }, {
        linkedTo: 0
    }],

【讨论】:

  • 当 yAxis 0 的极值具有最低和最高极值时,它可以正常工作。然后所有数据都显示在图表中。现在只需要弄清楚要链接到哪个轴。由于我想在可见区域中显示所有图形,因此我需要首先检查所有轴的最小/最大极值,然后选择具有最低/最高极值的那个。 (例如,如果我在您的 jsfiddle 中切换数据数组,则不再是两个图都在可见区域中。)不过,您对这个 linkedTo 方法的提示已经非常有帮助了。
  • 在这种情况下,您需要找到问题中提到的最小值和最大值,例如像这样jsfiddle.net/n8tokqru/1 - 在加载时执行此操作会更改动画,但这也可以在图表初始化之前完成。
猜你喜欢
  • 2019-05-16
  • 1970-01-01
  • 2019-07-05
  • 2013-05-12
  • 1970-01-01
  • 2021-11-26
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多