android - 强制 BarChart Y 轴标签为整数?

标签 android bar-chart mpandroidchart

我已经使用 MPAndroidChart 创建了一个 BarChart,并且正在动态输入数据。这意味着我还需要动态确定 Y 轴。我的所有数据都表示为整数,但 Y 轴有时将图例显示为带 1 个小数点的十进制值。

我尝试使用 ValueFormatter 对值进行舍入,但问题是有时 Y 值不在整数值位置(例如 0.8、1.6、2.4 等)。因此,如果我只是将它们编辑为整数,它们将不会位于正确的位置。

无论如何我可以强制条形图只显示整数位置的值吗?如果它跳过一些也没关系,事实上我希望它在值变大时跳过。

编辑:当我说整数不在正确的位置时,我的意思是一旦我修改了每个标签显示的内容,它们就不“正确”了。在我的示例中,我有 5 个条形图显示值 3、4、2、3、2。第一张图片是“默认”图片,第二张图片是我使用以下命令编辑值格式化程序后的图片:

myBarChart.getYLabels().setFormatter(new ValueFormatter()
{
    @Override
    public String getFormattedValue(float v)
    {
        return ((int) v)+"";
    }
});

enter image description here enter image description here

正如我们从这些图像中看到的那样,我的整数值不在应有的位置(并且有两个“2”)。在这个例子中,我将它排除在外,以显示值 0、1、2、3、4。如果我有更多的数据,我希望它足够聪明,只显示我有空间的值,例如,如果数据包含 0-50 的值,它会显示类似 0,10,20,30 的内容,40,50 或可能是 0,15,30,45 等。

最佳答案

好的,现在我明白你的问题了。 问题是 YAxis (YLabels) 确定位数,因此自动每个标签之间的步长。

遗憾的是,目前无法自定义轴如何自行计算或设置自定义标签。

我正在考虑在未来添加这样的功能,用户可以自定义将哪些值绘制为轴标签。

只是一个提示:

保存所有轴标签的mEntries 数组是公共(public)的。所以一般来说,您可以在创建后对其进行修改。 但是,我完全不确定如果您手动修改轴将如何表现。

但也许值得一试 :-) https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartLib/src/com/github/mikephil/charting/components/YAxis.java

关于android - 强制 BarChart Y 轴标签为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28753540/

相关文章:

android - 限制 parent 获得焦点点击其 child 之一

android - ADB 未检测到我的三星 Galaxy S6

Gnuplot 直方图集群(条形图),每个类别一行

python - 如何增加 matplotlib 条形图中错误线的粗细?

java - MPAndroidChart 饼图

android - 动画图像从下到上

java - Android、AccountManager 和 OAuth

android - 如何在 MPAndroidChart 中为每个柱放置自定义值图像?

android - MPAndroidChart 如何设置 y 轴最小值和最大值或设置默认缩放?

android - MarkerView 未使用 MPAndroidChart 显示