Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GraphView垂直标签以整数形式从0递增_Java_Android_Bar Chart_Android Graphview - Fatal编程技术网

Java GraphView垂直标签以整数形式从0递增

Java GraphView垂直标签以整数形式从0递增,java,android,bar-chart,android-graphview,Java,Android,Bar Chart,Android Graphview,目前,下面的代码显示附加的条形图,其刻度包括小数,从2开始 我的问题是:有没有办法从0开始y轴标签,并将整数增加到数据的最大值?例如,在这里,0,1,2,3,4,5 barData = this.getIntent().getExtras().getString("GraphData"); GraphViewSeries barGraphSeries = new GraphViewSeries( new GraphViewData

目前,下面的代码显示附加的条形图,其刻度包括小数,从2开始

我的问题是:有没有办法从0开始y轴标签,并将整数增加到数据的最大值?例如,在这里,0,1,2,3,4,5

barData = this.getIntent().getExtras().getString("GraphData");

            GraphViewSeries barGraphSeries = new GraphViewSeries(
                    new GraphViewData[] {
                            new GraphViewData(0, Integer.parseInt(barData
                                    .substring(0, barData.indexOf(",")))),
                            new GraphViewData(1, Integer.parseInt(barData
                                    .substring(barData.indexOf(",") + 1,
                                            barData.length()))) });

            GraphView statGraphView = new BarGraphView(this,
                    "Current Stat Graph");

            statGraphView.getGraphViewStyle().setGridColor(Color.BLACK);
            statGraphView.getGraphViewStyle().setHorizontalLabelsColor(
                    Color.BLACK);
            statGraphView.getGraphViewStyle().setVerticalLabelsColor(
                    Color.BLACK);
            String[] horLabels = { "Correct", "Incorrect" };
            statGraphView.setHorizontalLabels(horLabels);
            statGraphView.getGraphViewStyle().setNumHorizontalLabels(2);
            statGraphView.getGraphViewStyle().setNumVerticalLabels(10);



            statGraphView.addSeries(barGraphSeries);

            LinearLayout layout = (LinearLayout) findViewById(R.id.graph1);
            layout.addView(statGraphView);

首先要知道的是,如果让GraphView管理Y刻度,它将显示10个间隔,即11个值。 因此,如果您的值介于0到10或0到20之间,则显示的值将是整数

您可以使用GraphView.setManualYAxisBounds(双最大值、双最小值)手动设置垂直边界 在您的情况下,您可能希望使用setManualYAxisBounds(5,0),但不会显示整数。 因此,必须使用getGraphViewStyle().setNumVerticalLabels(6)

下面是一段代码,我用它来动态调整从0到200的缩放值,最大缩放值尽可能接近我数据的最大值(我希望我可以理解,lol)

int-maxValue=…//在这里,您可以找到您的最大值
//搜索两个垂直标签之间的间隔
整数区间;
如果(最大值
  int maxValue = ...    // here, you find your max value
  // search the interval between 2 vertical labels
  int interval;
  if (maxValue <= 55) {
      interval = 5; // increment of 5 between each label
  } else if (maxValue <= 110) {
      interval = 10; // increment of 10 between each label
  } else {
      interval = 20; // increment of 20 between each label
  }
  // search the top value of your graph, it must be a multiplier of your interval
  int maxLabel = maxValue;
  while (maxLabel % interval != 0) {
      maxLabel++;
  }
  // set manual bounds
  setManualYAxisBounds(maxLabel, 0);
  // indicate number of vertical labels
  getGraphViewStyle().setNumVerticalLabels(maxLabel / interval + 1);
  // now, it's ok, you should have a graph with integer labels