即使没有相应的 YValue,MPAndroidChart 也会显示指定范围的 XValues?
MPAndroidChart show specified range of XValues even when there is no corresponding YValue?
我遇到的问题是我的图表应该始终显示固定范围的 XValues 让我们说一天 24 小时,但图表只显示 XValues 直到并从第一个点开始最后一个 YValue,也就是说,如果我有两个 Y 事件,假设是凌晨 2 点和下午 3 点,而不是显示整个 24 小时,它将从凌晨 2 点开始到下午 3 点结束。
我认为这与通过 IAxisValueFormatter 处理 XValues 的新方法有关,因为当我们可以将 X 和 Y 值都添加到 ChartData 时,这曾经工作得很好。
我发现的一个变通方法是在我的例子中将空的 YValues 添加到第一个和最后一个小时的 0 值,但这带来了另一个问题,无论我在 LeftAxis 中设置最小值如何,它都会开始显示负标签值(从 -15 而不是 0 开始。
有官方的方法吗?我对此进行了很多研究,我正在考虑回到以前版本的库,在那里我可以使用旧方法。
编辑:只是为了澄清这个问题与标签没有任何关系,但是对于 X 中图表的开始和结束,它正在丢弃没有任何 YValues 的 X 范围我理解是有道理的,但在某些情况下它会使结果看起来很难看。
可以使用setLabelCount()
的方法强制轴按照你指定的计数绘制标签
根据文档:
setLabelCount(int count, boolean force)
@param count
:应该显示的y轴标签个数
@param force
如果启用,将强制设置标签计数,这意味着将绘制准确指定数量的标签并沿轴均匀分布- 这可能会导致标签的值不均匀
下面定义了setLabelCount
方法
public void setLabelCount(int count) {
if (count > 25)
count = 25;
if (count < 2)
count = 2;
mLabelCount = count;
mForceLabels = false;
}
您可以将 setLabelCount()
与 setAxisMaximum()
和 setAxisMinimum()
一起使用
例如:
axis.setLabelCount(24, true);
axis.setAxisMaximum(24f);
axis.setAxisMinimum(0f);
无论 Y 轴值如何,这都会绘制 0 - 24 的值
我遇到的问题是我的图表应该始终显示固定范围的 XValues 让我们说一天 24 小时,但图表只显示 XValues 直到并从第一个点开始最后一个 YValue,也就是说,如果我有两个 Y 事件,假设是凌晨 2 点和下午 3 点,而不是显示整个 24 小时,它将从凌晨 2 点开始到下午 3 点结束。
我认为这与通过 IAxisValueFormatter 处理 XValues 的新方法有关,因为当我们可以将 X 和 Y 值都添加到 ChartData 时,这曾经工作得很好。
我发现的一个变通方法是在我的例子中将空的 YValues 添加到第一个和最后一个小时的 0 值,但这带来了另一个问题,无论我在 LeftAxis 中设置最小值如何,它都会开始显示负标签值(从 -15 而不是 0 开始。
有官方的方法吗?我对此进行了很多研究,我正在考虑回到以前版本的库,在那里我可以使用旧方法。
编辑:只是为了澄清这个问题与标签没有任何关系,但是对于 X 中图表的开始和结束,它正在丢弃没有任何 YValues 的 X 范围我理解是有道理的,但在某些情况下它会使结果看起来很难看。
可以使用setLabelCount()
的方法强制轴按照你指定的计数绘制标签
根据文档:
setLabelCount(int count, boolean force)
@param count
:应该显示的y轴标签个数
@param force
如果启用,将强制设置标签计数,这意味着将绘制准确指定数量的标签并沿轴均匀分布- 这可能会导致标签的值不均匀
下面定义了setLabelCount
方法
public void setLabelCount(int count) {
if (count > 25)
count = 25;
if (count < 2)
count = 2;
mLabelCount = count;
mForceLabels = false;
}
您可以将 setLabelCount()
与 setAxisMaximum()
和 setAxisMinimum()
一起使用
例如:
axis.setLabelCount(24, true);
axis.setAxisMaximum(24f);
axis.setAxisMinimum(0f);
无论 Y 轴值如何,这都会绘制 0 - 24 的值