当前位置: 首页 > 知识库问答 >
问题:

MPAndroidChart-getFormattedValue方法中的值错误。他们来自哪里?

戎俊
2023-03-14

我正在处理一个使用MPAndroidChart库的项目,这让我非常疯狂,我想删除它。

问题是,我创建了一个自定义的ValueFormatter,我无法理解这些值来自何处,它们都是错误的。

 private void setData() {
  for (int i = 1; i <= 10; i++) {
        Entry entry = new Entry(i, i);
        values.add(entry);
    }


    IAxisValueFormatter valueFormatter = new myValueFormatter();
    XAxis xAxis = mChart.getXAxis();
    xAxis.setValueFormatter(valueFormatter);


    LineDataSet set1 = new LineDataSet(values, "DataSet 1");

    ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
    dataSets.add(set1); // add the datasets

    // create a data object with the datasets
    LineData data = new LineData(dataSets);

    // set data
    mChart.setData(data);
}

自定义格式化程序类:我有一个数组,它有1,2,3,4,5,6,7,8,9,10个值,但我在getFormattedValue方法中得到了2,4,6,8,10个。

public classmyValueFormatter implements IAxisValueFormatter {

   @Override
public String getFormattedValue(float value, AxisBase axis) {

            System.out.println(value); //Here I get odd values where they come from I don't know.

}

}

共有1个答案

章飞虎
2023-03-14

一般来说,库就是这样编写的。看看这里:

https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartLib/src/main/java/com/github/mikephil/charting/renderer/XAxisRenderer.java#L205

String label = mXAxis.getValueFormatter().getFormattedValue(mXAxis.mEntries[i / 2], mXAxis);

作者的意图可能是在标签之间提供更多的行间距。如果您认为这是一个错误,请将问题提交到Github上的库存储库。

 类似资料:
  • 我用的是MPAndroidChart,我有一个x轴从0到11的条形图。 我添加了setOnChartValueSelectedListener,但突出显示了。getX()返回8,即使单击最后一个栏,也应该是11。 我在做什么: 创建一个包含几个条目的BarData对象-基本上每月1个,其中x值是月份数(0到11) 在图表上设置ChartValueSelectedListener 运行应用程序,水平

  • 问题内容: 我试图从一个字符串做一个BigDecimal。不要问我为什么,我只需要它!这是我的代码: 这是我得到的输出? 有任何想法吗? 问题答案: 创建双精度数时,值0.3不能精确表示。您可以从不带中间双精度字的字符串创建BigDecimal,如下所示: 浮点数表示为二进制分数和指数。因此,有些数字无法准确表示。在以10为基数的数字中有一个类似的问题,例如1/3,即0.333333333 ...

  • 问题内容: 当我使用编译器警告(JDK 1.5)来编译我的项目时,我收到很多错误的路径元素警告: 警告:: [路径]错误的路径元素“ C:\ Users \ User \ MyJava \ common \ lib \ junit.jar”:没有这样的文件或目录警告:: [路径]错误的路径元素“ C:\ Users \ User \ MyJava \ common \ lib \ jdom.jar

  • 我正在尝试运行这里提供的kotlin代码的测试:https://github.com/ligi/ipfs-api-kotlingradlew 我收到了下面列出的错误。有人能告诉我这个错误是什么意思吗?

  • 用 assert 测试编码和设计错误。如果其返回false,则程序终止,应纠正代码。这种方法在调试时很有用处。 忽略异常,这不适合公开发布的软件产品和任务关键的专用软件。但自用软件通常可以忽略许多错误。 退出程序,使程序无法运行完毕或产生错误结果。实际上,对于许多错误类型,这是个好办法,特别是对于能让程序运行完毕的非致命错误,因为让程序运行完毕很可能使程序员误以为程序工作很顺利。这种方法也不适合任

  • 我是c的新手,我见过许多c编译器自动将int argc、char*argv作为参数传递到main函数中,但它们在哪里定义?有点好奇。