Решено, я просто добавляю if(!empty($data)){...}
на свой контроллер, если я просто хочу показать карту, на которой есть какие-либо данные.
вот код:
$jscript11 = '';
if(!empty($dt9)){
$bgColor = '"#2fb4ed","#ba68c8","#33e0ff","#0fe07f","#ffb74d","#4caf50","#ff7043"';
$jdata11= '';
$jdata12='';
$jcolor= '';
// $jjum11= '';
foreach ($apt as $key => $row) {
$qty = ($row->sales_qty / $row->total_sales_qty) * 100;
$qty = number_format($qty, 2);
$qty_unit = $row->sales_qty;
$qtyamt = ($row->sales_amt / $row->total_sales_amt) * 100;
$qtyamt = number_format($qtyamt, 2);
$qtyAmt = $row->sales_amt;
$p11 = '["'.$row->payment_descs.'",'.$qty_unit.']';
$p12 = '["'.$row->payment_descs.'",'.$qtyAmt.']';
$c1 = $bgColor;
$jdata11.= $p11.',';
$jcolor.= $c1.',';
$jdata12.= $p12.',';
}
$jdata11=substr($jdata11,0,-1);
$jcolor=substr($jcolor,0,-1);
$jdata12=substr($jdata12,0,-1);
$jscript11.='var chart1 = c3.generate({bindto: "#paymentaptqty",padding:
{bottom: 20,top:10}, data: {';
$jscript11.=' columns: [ '.$jdata11.'], ';
$jscript11.=' type : "pie", ';
$jscript11.=' colors :['.$jcolor.'] ';
$jscript11.=' }, ';
// $jscript11.=' size: { ';
// $jscript11.=' width: 300, ';
// $jscript11.=' height: 300, ';
// $jscript11.=' }, ';
$jscript11.=' legend: { ';
$jscript11.=' show: false, ';
$jscript11.=' responsive: true, ';
$jscript11.=' }, ';
$jscript11.=' tooltip: { ';
$jscript11.=' format: { ';
// $jscript11.=' // title: function (d) { return 'Data ' + d; }, ';
$jscript11.=' value: function (value, ratio, id) { ';
$jscript11.=' return formatNumber(value); ';
$jscript11.=' } ';
$jscript11.=' } ';
$jscript11.=' } ';
$jscript11.=' });';
}