iOS图表 - 设置y轴最小范围

15
我正在使用出色的iOS Charts库(https://github.com/danielgindi/ios-charts),但是我在文档中找不到任何支持这种行为的东西。我想强制y轴始终显示0-35的范围。当前,如果我只有一个数据项例如(0,9),那么y轴会将其范围显示为0-9。然而,当我在(1,32)添加另一个条目时,突然间我可以看到图表的顶部为35。

有三种方法看起来很有前途(因为它们相关),但它们并没有提供我所要求的类型的行为。

1:Chart.setVisibleYRangeMaximum(如果只有Minimum就更好了...)

2:Chart.setVisibleXRangeMaximum(再次无用...)

3:Chart.setVisibleXRangeMinimum(现在你的YRange表兄在哪里?!)

总之,这就是我的进展情况。我已经阅读了文档,但毫无结果。请帮助我吧!

4个回答

23

对于图表3(在Charts 3.0.2上尝试过),这个方法有效:

chartView.leftAxis.axisMinimum = 0

默认情况下,条形图至少会有一个右轴,并且如果您不设置以下内容,则网格不会对齐:

chartView.rightAxis.axisMinimum = 0

注意:我最初将其作为评论写下,但我认为它应该成为答案,以便于那些通过谷歌来到这里的人更容易找到。


注意:我最初将其作为评论写下,但我认为它应该成为答案,以便于那些通过谷歌来到这里的人更容易找到。

14

customAxisMin 在最新的图表中已经被弃用。

请使用属性 axisMinValue 代替!


11
请看下面的属性。这些属性应该可以解决您的问题。
/// A custom minimum value for this axis. 
/// If set, this value will not be calculated automatically depending on the provided data. 
/// Use resetCustomAxisMin() to undo this. 
/// Do not forget to set startAtZeroEnabled = false if you use this method.
/// Otherwise, the axis-minimum value will still be forced to 0.
public var customAxisMin = Double.NaN

/// Set a custom maximum value for this axis. 
/// If set, this value will not be calculated automatically depending on the provided data. 
/// Use resetCustomAxisMax() to undo this.
public var customAxisMax = Double.NaN

/// if true, the y-label entries will always start at zero
public var startAtZeroEnabled = true

例如:

_chartView.leftAxis.customAxisMax = 35;
_chartView.leftAxis.customAxisMin = 0;

或者_chartView.leftAxis.startAtZeroEnabled = YES;

在你的例子中:不要忘记设置startAtZeroEnabled = false,这样它也可以在customAxisMin为负数时正常工作。 - Andrei Marincas
1
随着最新版本的发布,startAtZeroEnabled已被弃用,请直接使用customAxisMin。 - Wingzero
1
对于 Charts 3,请使用 chartView.leftAxis.axisMinimum = 0 - Vlad V

1
    linechart2.leftAxis.axisMinimum = chartDataline.getYMin() - 0.1

为了让图形仅关注于y值范围,获取数据集LineChartData的最小值,如果需要一些填充,则可以减去一个缓冲区。有些人说过以前会使用"linechart2.leftAxis.startAtZeroEnabled = false",但现在代码中已不再出现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接