/** * returns an exact copy of the entry * * @return */ public Entry copy() { Entry e = new Entry(x, getY(), getData()); return e; }
private void setData(int count, float range) { ArrayList<Entry> entries = new ArrayList<>(); for (int i = 0; i < count; i++) { float xVal = (float) (Math.random() * range); float yVal = (float) (Math.random() * range); entries.add(new Entry(xVal, yVal)); } // sort by x-value Collections.sort(entries, new EntryXComparator()); // create a dataset and give it a type LineDataSet set1 = new LineDataSet(entries, "DataSet 1"); set1.setLineWidth(1.5f); set1.setCircleRadius(4f); // create a data object with the data sets LineData data = new LineData(set1); // set data chart.setData(data); }
@Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { chart.resetTracking(); progress = seekBarX.getProgress(); tvX.setText(String.valueOf(seekBarX.getProgress())); tvY.setText(String.valueOf(seekBarY.getProgress())); ArrayList<ILineDataSet> dataSets = new ArrayList<>(); for (int z = 0; z < 3; z++) { ArrayList<Entry> values = new ArrayList<>(); for (int i = 0; i < progress; i++) { double val = (Math.random() * seekBarY.getProgress()) + 3; values.add(new Entry(i, (float) val)); } LineDataSet d = new LineDataSet(values, "DataSet " + (z + 1)); d.setLineWidth(2.5f); d.setCircleRadius(4f); int color = colors[z % colors.length]; d.setColor(color); d.setCircleColor(color); dataSets.add(d); } // make the first DataSet dashed ((LineDataSet) dataSets.get(0)).enableDashedLine(10, 10, 0); ((LineDataSet) dataSets.get(0)).setColors(ColorTemplate.VORDIPLOM_COLORS); ((LineDataSet) dataSets.get(0)).setCircleColors(ColorTemplate.VORDIPLOM_COLORS); LineData data = new LineData(dataSets); chart.setData(data); chart.invalidate(); }
protected ScatterData generateScatterData(int dataSets, float range, int count) { ArrayList<IScatterDataSet> sets = new ArrayList<>(); ScatterChart.ScatterShape[] shapes = ScatterChart.ScatterShape.getAllDefaultShapes(); for(int i = 0; i < dataSets; i++) { ArrayList<Entry> entries = new ArrayList<>(); for(int j = 0; j < count; j++) { entries.add(new Entry(j, (float) (Math.random() * range) + range / 4)); } ScatterDataSet ds = new ScatterDataSet(entries, getLabel(i)); ds.setScatterShapeSize(12f); ds.setScatterShape(shapes[i % shapes.length]); ds.setColors(ColorTemplate.COLORFUL_COLORS); ds.setScatterShapeSize(9f); sets.add(ds); } ScatterData d = new ScatterData(sets); d.setValueTypeface(tf); return d; }
private ScatterData generateScatterData() { ScatterData d = new ScatterData(); ArrayList<Entry> entries = new ArrayList<>(); for (float index = 0; index < count; index += 0.5f) entries.add(new Entry(index + 0.25f, getRandom(10, 55))); ScatterDataSet set = new ScatterDataSet(entries, "Scatter DataSet"); set.setColors(ColorTemplate.MATERIAL_COLORS); set.setScatterShapeSize(7.5f); set.setDrawValues(false); set.setValueTextSize(10f); d.addDataSet(set); return d; }
private LineData getData(int count, float range) { ArrayList<Entry> values = new ArrayList<>(); for (int i = 0; i < count; i++) { float val = (float) (Math.random() * range) + 3; values.add(new Entry(i, val)); } // create a dataset and give it a type LineDataSet set1 = new LineDataSet(values, "DataSet 1"); // set1.setFillAlpha(110); // set1.setFillColor(Color.RED); set1.setLineWidth(1.75f); set1.setCircleRadius(5f); set1.setCircleHoleRadius(2.5f); set1.setColor(Color.WHITE); set1.setCircleColor(Color.WHITE); set1.setHighLightColor(Color.WHITE); set1.setDrawValues(false); // create a data object with the data sets return new LineData(set1); }
private LineData generateLineData() { LineData d = new LineData(); ArrayList<Entry> entries = new ArrayList<>(); for (int index = 0; index < count; index++) entries.add(new Entry(index + 0.5f, getRandom(15, 5))); LineDataSet set = new LineDataSet(entries, "Line DataSet"); set.setColor(Color.rgb(240, 238, 70)); set.setLineWidth(2.5f); set.setCircleColor(Color.rgb(240, 238, 70)); set.setCircleRadius(5f); set.setFillColor(Color.rgb(240, 238, 70)); set.setMode(LineDataSet.Mode.CUBIC_BEZIER); set.setDrawValues(true); set.setValueTextSize(10f); set.setValueTextColor(Color.rgb(240, 238, 70)); set.setAxisDependency(YAxis.AxisDependency.LEFT); d.addDataSet(set); return d; }
private void setData(int count, float range) { ArrayList<Entry> values = new ArrayList<>(); for (int i = 0; i < count; i++) { float val = (float) (Math.random() * (range + 1)) + 3; values.add(new Entry(i * 0.001f, val)); } // create a dataset and give it a type LineDataSet set1 = new LineDataSet(values, "DataSet 1"); set1.setColor(Color.BLACK); set1.setLineWidth(0.5f); set1.setDrawValues(false); set1.setDrawCircles(false); set1.setMode(LineDataSet.Mode.LINEAR); set1.setDrawFilled(false); // create a data object with the data sets LineData data = new LineData(set1); // set data chart.setData(data); // get the legend (only possible after setting data) Legend l = chart.getLegend(); l.setEnabled(false); }
values.add(new Entry(0, 10)); values.add(new Entry(1, 20)); values.add(new Entry(2, 30)); values.add(new Entry(3, 40)); values.add(new Entry(3, 50)); // duplicate values.add(new Entry(4, 60)); values.add(new Entry(4, 70)); // duplicate values.add(new Entry(5, 80)); values.add(new Entry(6, 90)); values.add(new Entry(7, 100)); values.add(new Entry(8, 110)); values.add(new Entry(8, 120)); // duplicate
@Test public void testCalcMinMax() { List<Entry> entries = new ArrayList<Entry>(); entries.add(new Entry(10, 10)); entries.add(new Entry(15, 2)); entries.add(new Entry(21, 5)); ScatterDataSet set = new ScatterDataSet(entries, ""); assertEquals(10f, set.getXMin(), 0.01f); assertEquals(21f, set.getXMax(), 0.01f); assertEquals(2f, set.getYMin(), 0.01f); assertEquals(10f, set.getYMax(), 0.01f); assertEquals(3, set.getEntryCount()); set.addEntry(new Entry(25, 1)); assertEquals(10f, set.getXMin(), 0.01f); assertEquals(25f, set.getXMax(), 0.01f); assertEquals(1f, set.getYMin(), 0.01f); assertEquals(10f, set.getYMax(), 0.01f); assertEquals(4, set.getEntryCount()); set.removeEntry(3); assertEquals(10f, set.getXMin(), 0.01f); assertEquals(21, set.getXMax(), 0.01f); assertEquals(2f, set.getYMin(), 0.01f); assertEquals(10f, set.getYMax(), 0.01f); }
private void setData(int count, float range) { // now in hours long now = TimeUnit.MILLISECONDS.toHours(System.currentTimeMillis()); ArrayList<Entry> values = new ArrayList<>(); // count = hours float to = now + count; // increment by 1 hour for (float x = now; x < to; x++) { float y = getRandom(range, 50); values.add(new Entry(x, y)); // add one entry per hour } // create a dataset and give it a type LineDataSet set1 = new LineDataSet(values, "DataSet 1"); set1.setAxisDependency(AxisDependency.LEFT); set1.setColor(ColorTemplate.getHoloBlue()); set1.setValueTextColor(ColorTemplate.getHoloBlue()); set1.setLineWidth(1.5f); set1.setDrawCircles(false); set1.setDrawValues(false); set1.setFillAlpha(65); set1.setFillColor(ColorTemplate.getHoloBlue()); set1.setHighLightColor(Color.rgb(244, 117, 117)); set1.setDrawCircleHole(false); // create a data object with the data sets LineData data = new LineData(set1); data.setValueTextColor(Color.WHITE); data.setValueTextSize(9f); // set data chart.setData(data); }
@Test public void testGetEntryForXValue() { List<Entry> entries = new ArrayList<Entry>(); entries.add(new Entry(10, 10)); entries.add(new Entry(15, 5)); entries.add(new Entry(21, 5)); ScatterDataSet set = new ScatterDataSet(entries, ""); Entry closest = set.getEntryForXValue(17, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(15, closest.getX(), 0.01f); assertEquals(5, closest.getY(), 0.01f); closest = set.getEntryForXValue(17, Float.NaN, DataSet.Rounding.DOWN); assertEquals(15, closest.getX(), 0.01f); assertEquals(5, closest.getY(), 0.01f); closest = set.getEntryForXValue(15, Float.NaN, DataSet.Rounding.DOWN); assertEquals(15, closest.getX(), 0.01f); assertEquals(5, closest.getY(), 0.01f); closest = set.getEntryForXValue(14, Float.NaN, DataSet.Rounding.DOWN); assertEquals(10, closest.getX(), 0.01f); assertEquals(10, closest.getY(), 0.01f); closest = set.getEntryForXValue(17, Float.NaN, DataSet.Rounding.UP); assertEquals(21, closest.getX(), 0.01f); assertEquals(5, closest.getY(), 0.01f); closest = set.getEntryForXValue(21, Float.NaN, DataSet.Rounding.UP); assertEquals(21, closest.getX(), 0.01f); assertEquals(5, closest.getY(), 0.01f); closest = set.getEntryForXValue(21, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(21, closest.getX(), 0.01f); assertEquals(5, closest.getY(), 0.01f); }
private void addEntry() { LineData data = chart.getData(); if (data != null) { ILineDataSet set = data.getDataSetByIndex(0); // set.addEntry(...); // can be called as well if (set == null) { set = createSet(); data.addDataSet(set); } data.addEntry(new Entry(set.getEntryCount(), (float) (Math.random() * 40) + 30f), 0); data.notifyDataChanged(); // let the chart know it's data has changed chart.notifyDataSetChanged(); // limit the number of visible entries chart.setVisibleXRangeMaximum(120); // chart.setVisibleYRange(30, AxisDependency.LEFT); // move to the latest entry chart.moveViewToX(data.getEntryCount()); // this automatically refreshes the chart (calls invalidate()) // chart.moveViewTo(data.getXValCount()-7, 55f, // AxisDependency.LEFT); } }
private void addDataSet() { LineData data = chart.getData(); if (data == null) { chart.setData(new LineData()); } else { int count = (data.getDataSetCount() + 1); int amount = data.getDataSetByIndex(0).getEntryCount(); ArrayList<Entry> values = new ArrayList<>(); for (int i = 0; i < amount; i++) { values.add(new Entry(i, (float) (Math.random() * 50f) + 50f * count)); } LineDataSet set = new LineDataSet(values, "DataSet " + count); set.setLineWidth(2.5f); set.setCircleRadius(4.5f); int color = colors[count % colors.length]; set.setColor(color); set.setCircleColor(color); set.setHighLightColor(color); set.setValueTextSize(10f); set.setValueTextColor(color); data.addDataSet(set); data.notifyDataChanged(); chart.notifyDataSetChanged(); chart.invalidate(); } }
float value = (float) (Math.random() * 50) + 50f * (randomDataSetIndex + 1); data.addEntry(new Entry(randomSet.getEntryCount(), value), randomDataSetIndex); data.notifyDataChanged();
entries.add(new Entry(10, 10)); entries.add(new Entry(15, 2)); entries.add(new Entry(21, 5)); set.addEntryOrdered(new Entry(5, 1)); assertEquals(1, set.getEntryForIndex(0).getY(), 0.01f); set.addEntryOrdered(new Entry(20, 50)); assertEquals(10, set.getEntryForIndex(0).getY(), 0.01f); set.addEntryOrdered(new Entry(15, 3));
values.add(new Entry(i, val, getResources().getDrawable(R.drawable.star)));
values.add(new Entry(i, val));