rafaelasguerra
rafaelasguerra

Reputation: 2555

MPAndroidChart - Change message "No chart data available"

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");

Upvotes: 37

Views: 23592

Answers (7)

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.

Upvotes: 1

herrzura
herrzura

Reputation: 11

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");

Upvotes: 1

tony esna
tony esna

Reputation: 41

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

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

Upvotes: 3

Mina Fawzy
Mina Fawzy

Reputation: 21452

update answer

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

Upvotes: 57

Sundeep Badhotiya
Sundeep Badhotiya

Reputation: 868

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

Upvotes: 9

Puppi
Puppi

Reputation: 81

@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");

Upvotes: 6

David Miguel
David Miguel

Reputation: 14380

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(...);
... 

Upvotes: 13

Related Questions