if (!ldata.isEmpty()) {
            TreeSet<String> orderedKeys = new TreeSet<String>(ldata.keySet());
            String[] allKeys = orderedKeys.toArray(new String[ldata.size()]);
            KpiData refData = ldata.get(allKeys[0]);
            PlotBuilder builder = pc.newPlot().update(base + "/" + refData.getPath() + "/" + refData.getPlotKey()).title(refData.getPlotKey());
            Map<String, Boolean> okKeys = new HashMap<String, Boolean>();
            for (String kk : orderedKeys) {
                KpiData data = ldata.get(kk);
                for (Object o : data.getY()) {
                    if (((Number) o).doubleValue() != 0) {
                        okKeys.put(kk, true);
                        return;
                    }
                }
            }
            boolean ignoreZeros = true;
            int nbrCurves = 0;
            for (String kk : orderedKeys) {
                KpiData data = ldata.get(kk);
                NamePath npp = NamePath.parse(data.getKey());
                Object p = all.get(npp);
                if (p != null) {
                    if (p instanceof String && JvmOnUtils.isDouble(p.toString())) {
                        p = Convert.toDouble(p, DoubleParserConfig.LENIENT);
                    }
                    if (p instanceof Number) {
                        data.add(date, ((Number) p).doubleValue());
                        if (((Number) p).doubleValue() != 0) {
                            okKeys.put(kk, true);
                        }
                    }
                }
                if (!ignoreZeros || (okKeys.containsKey(kk) && okKeys.get(kk))) {
                    builder.add(data.getY());
                    builder.addTitle(data.getTitle());
                    nbrCurves++;
                }
            }
            if (nbrCurves > 0) {
                builder.asCurve();
                builder.cd(base + "/" + refData.getPath());
                builder.xsamples(refData.getX());
                builder.yformat("frequency".equals(refData.getYformatter()) ? JvmOnUtils.FREQUENCY_FORMATTER : "memory".equals(refData.getYformatter()) ? JvmOnUtils.MEMORY_SIZE_FORMATTER : "dimension".equals(refData.getYformatter()) ? JvmOnUtils.METRIC_FORMATTER : null);
                builder.xname("Date/Time");
                builder.plot();
            }
        }