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