Android graphview android graphview使用SetNumVerticalLabel显示错误的图形

Android graphview android graphview使用SetNumVerticalLabel显示错误的图形,android-graphview,Android Graphview,我测试了android graphview库,发现以下行为: 我使用了最新的GraphViewDemos和第一个SimpleGraph示例。它显示具有正确数据的线形图。y轴值为1,2,3 GraphViewSeries exampleSeries = new GraphViewSeries(new GraphViewData[] { new GraphViewData(1, 2.0d) , new GraphViewData(2, 1.5d)

我测试了android graphview库,发现以下行为: 我使用了最新的GraphViewDemos和第一个SimpleGraph示例。它显示具有正确数据的线形图。y轴值为1,2,3

GraphViewSeries exampleSeries = new GraphViewSeries(new GraphViewData[] {
            new GraphViewData(1, 2.0d)
            , new GraphViewData(2, 1.5d)
            , new GraphViewData(2.5, 3.0d) // another frequency
            , new GraphViewData(3, 2.5d)
            , new GraphViewData(4, 1.0d)
            , new GraphViewData(5, 3.0d)
    });
最大值是3对不起,我不能发布图像,其他坐标都是正确的

如果我加上这些行

graphView.getGraphViewStyle().setNumVerticalLabels(5);
graphView.setVerticalLabels( new String[]{"4","3","2","1","0"});
以前

LinearLayout layout = (LinearLayout) findViewById(R.id.graph1);
layout.addView(graphView);
在改变y轴的代码中,我得到了一个最大值不是3,而是4的图。所有其他坐标的y值都是错误的

为什么完整的图形会改变,而不仅仅是y轴?

与线一起:

graphView.setVerticalLabels( new String[]{"4","3","2","1","0"});
可以为图形设置静态标签。因此,垂直标签y值不再与数据链接

此行用于动态标签。您可以修改将生成的标签的计数

graphView.getGraphViewStyle().setNumVerticalLabels(5);
但是您使用的是静态标签,因此该行没有意义

访问此页面并滚动到教程的自定义标签格式化程序部分

GraphView graphView = new LineGraphView(this, "example");
graphView.setCustomLabelFormatter(new CustomLabelFormatter() {
  @Override
public String formatLabel(double value, boolean isValueX) {
  if (isValueX) {
     if (value < 5) {
        return "small";
     } else if (value < 15) {
        return "middle";
     } else {
        return "big";
     }
  }
    return null; // let graphview generate Y-axis label for us
}
   });

基本上,您必须使用您提供的静态垂直标签映射实际y值

谢谢Jonas,因此实际上不可能将y轴设置为大于图形最大值的值?可以使用一个额外的图形,该图形具有正确的最小值和最大值,并将其颜色设置为背景色。这是可能的。再次使用SetManualYaxisBoundsHanks。我没有找到那个函数。这比我的解决方案要好,因为图例现在没有显示不可见图形。