Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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
如何在MPAndroidChart中连续更新Y轴值_Android_Axis_Scaling_Linechart_Mpandroidchart - Fatal编程技术网

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

如何在MPAndroidChart中连续更新Y轴值,android,axis,scaling,linechart,mpandroidchart,Android,Axis,Scaling,Linechart,Mpandroidchart,我想让我的线状图中的轴实时调整它的最大值和最小值。resetAxisMaxValue()和resetAxisMinValue()等函数在新数据的Y值增加(正和负)时工作良好,但是,一旦信号再次变低,Y值max和min就不会下降到较小的值,因此它可以在图形的整个画布上显示所有新数据。我想检查是否有自动执行的方法,或者是否应该使用暴力。谢谢。我发布了我实施的解决方案。它实时性很好 将以下行添加到将数据附加到图形的函数中 float maxVisiblePoint = -9999999; float

我想让我的线状图中的轴实时调整它的最大值和最小值。resetAxisMaxValue()和resetAxisMinValue()等函数在新数据的Y值增加(正和负)时工作良好,但是,一旦信号再次变低,Y值max和min就不会下降到较小的值,因此它可以在图形的整个画布上显示所有新数据。我想检查是否有自动执行的方法,或者是否应该使用暴力。谢谢。

我发布了我实施的解决方案。它实时性很好

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

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();
float maxVisiblePoint=-9999999;
浮动最小可视点=999999;
//从图表中删除最后一个元素并查找最大和最小可见值
如果(dataSet.getEntryCount()==650){
mChartData.removeXValue(0);
dataSet.removeEntry(0);
for(条目:dataSet.getYVals()){
如果(entry.getVal()>maxVisiblePoint)maxVisiblePoint=entry.getVal();
如果(entry.getVal()

如果你遇到问题,请随时问我。祝你愉快!

亚历克斯的回答有点老了,所以

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

chart.setAutoScaleMinMaxEnabled(true);