清除之前绘制的图表 MPAndroidChart - Android?

Posted

技术标签:

【中文标题】清除之前绘制的图表 MPAndroidChart - Android?【英文标题】:clear the previously drawn chart MPAndroidChart - Android? 【发布时间】:2017-09-25 02:01:53 【问题描述】:

我使用来自MPandroidChart。如何清除之前绘制的图表?

我使用的是 from (Line Chart (Dual YAxis))

【问题讨论】:

只需清除您传递给它的arrayList。并尝试使用空数组再次重绘图表。 【参考方案1】:

您必须添加以下行以清除先前的图表。

arraylist.clear();
mChart.invalidate();
mChart.clear();

【讨论】:

完美!另请注意:我也遇到了一个问题,因为我没有清除我的 ArrayList,所以它存储了所有以前的项目。 xD【参考方案2】:
private fun resetChart() 
    barChart.fitScreen()
    barChart.data?.clearValues()
    barChart.xAxis.valueFormatter = null
    barChart.notifyDataSetChanged()
    barChart.clear()
    barChart.invalidate()

这是 Kotlin,但我发现我需要执行所有步骤以避免崩溃。

【讨论】:

【参考方案3】:

你只需要打电话

mChart.clear();

【讨论】:

【参考方案4】:

我将 LineChart 用作 ViewPager 中的片段。清除旧数据所需要做的就是将关联的 LineDataSet 对象分配给 null。

【讨论】:

【参考方案5】:

有时您可能没有对 ArrayList 的引用,因此您必须正确地执行类似的操作。

if(chart.getData() != null)
    chart.getData().clearValues();

chart.clear();

注意:chart.clear() 将 null 分配给 mData 并在图表上调用 invalidate,因此您不需要多次调用。

如果你还有一些缩放问题,你可以使用。

chart.setFitBars(true);
chart.fitScreen();

来源:https://javadoc.jitpack.io/com/github/PhilJay/MPAndroidChart/v3.1.0/javadoc/com/github/mikephil/charting/charts/Chart.html#clear--

【讨论】:

【参考方案6】:

如果您已经有一个数据集,只需将其删除,然后再添加新数据

if (mDataSet != null) 
    binding.chart.lineData.removeDataSet(mDataSet)

    
// create a dataset and give it a type
val set1 = LineDataSet(values, "Data1")
val dataSets: ArrayList<ILineDataSet> = ArrayList()
// add the data sets
dataSets.add(set1)

【讨论】:

以上是关于清除之前绘制的图表 MPAndroidChart - Android?的主要内容,如果未能解决你的问题,请参考以下文章

Android 图表框架MPAndroidChartr如何不绘制右边的Y轴

MPAndroidChart开源图表库之饼状图

MPAndroidChart开源图表库之饼状图

如何在Android中使用MPAndroidChart绘制面积图?

笑谈Android图表------MPAndroidCharts

MPAndroidChart - 如何在最后一个条目中绘制圆圈?