如何在 MPAndroidChart 中持续更新 Y 轴值

How to continuously update Y-axis values in MPAndroidChart

我希望折线图中的轴实时调整它的最大值和最小值。当新数据的 Y 值增加(正值和负值)时,像 resetAxisMaxValue() 和 resetAxisMinValue() 这样的函数可以很好地工作,但是,一旦信号再次变低,Y 值最大值和最小值永远不会下降到较小的值,因此它可以显示图表完整 canvas 上的所有新数据。我想检查是否有自动执行此操作的方法,或者我是否应该使用蛮力。谢谢。

我post我已经实施的解决方案。它实时运行良好。

将以下行添加到将数据附加到图形的函数中。

float maxVisiblePoint = -9999999;
float minVisiblePoint = 9999999;

//removing last element from the chart and finding max and min visible value
if(dataSet.getEntryCount() == 650) {
     mChartData.removeXValue(0);
     dataSet.removeEntry(0);

     for (Entry entry : dataSet.getYVals()) {
         if (entry.getVal() > maxVisiblePoint) maxVisiblePoint = entry.getVal();
         if (entry.getVal() < minVisiblePoint) minVisiblePoint = entry.getVal();
         entry.setXIndex(entry.getXIndex() - 1);
     }

//autogain is checked
if (autoScaleChecked) {
    YAxis leftAxis = mChart.getAxisLeft();
    leftAxis.setAxisMaxValue(maxVisiblePoint);
    leftAxis.setAxisMinValue(minVisiblePoint);
}
//static gain
else {
      YAxis leftAxis = mChart.getAxisLeft();
      leftAxis.setAxisMaxValue(5882400f);
      leftAxis.setAxisMinValue(-5882400f);
}
// let the chart know it's data has changed
mChart.notifyDataSetChanged();

如果您遇到问题,请随时问我。享受吧!

Alex的回答有点老了,所以...

MPAndroidChart 有一个名为 setAutoScaleMinMaxEnabled(boolean enabled) 的方法。 它使您的图表能够自动调整图表的比例。你可以像这样简单地使用它。

chart.setAutoScaleMinMaxEnabled(true);