MPAndroidChart - Change message "No chart data available"

23.1k Views Asked by At

Is there any way to change the message "No chart data available" when the chart is not populated?

Edit: Found the answer

chart.setNoDataText("Description that you want");
7

There are 7 best solutions below

5
Mina Fawzy On BEST ANSWER

update answer

chart.setNoDataText("Description that you want");
0
David Miguel On

If you also want to customize look & feel, you can do it through Paint object:

mChart.setNoDataText("Description that you want");
Paint p = mChart.getPaint(Chart.PAINT_INFO);
p.setTextSize(...);
p.setColor(...);
p.setTypeface(...);
... 
0
Puppi On
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_firestore__eintraege__heute);

    mChart = findViewById(R.id.chartZuckerHeute);
    mChart.setNoDataText("PUT IT HERE ON TOP; WORKED FOR ME");
0
Sundeep Badhotiya On

The Correct answer is here:

 pie_chart.setNoDataText("No Data Available");
 val paint:Paint =  pie_chart.getPaint(Chart.PAINT_INFO)
 paint.textSize = 40f
 pie_chart.invalidate()

You also set other properties like text color, text typeface etc

0
tony esna On

You need put pieChart.invalidate() after setNoDataText():

@Override
    public void setDataMessagePieChart() {
        pieChart.setNoDataText("... your message ...");
        pieChart.invalidate();
    }
0
herrzura On

It's a little bit old thread, but I had the same issue so my solution was to set nodatatext immediately after the initialization of a chart:

PieChart pieChart = findViewById(R.id.chart) //in case of fragment view.findViewById(R.id.chart)
pieChart.setNoDataText("Loading");
1
Andrés S. García Sobrado On

If setNoDataText is not working, you have to set it (and after that run an invalidate()) when you are initializing the chart. Don't do it when you are right away to set the data.