ScatterDataSet set = new ScatterDataSet(entries, ""); assertEquals(3, set.getEntryCount()); set.addEntryOrdered(new Entry(5, 1)); assertEquals(4, set.getEntryCount()); assertEquals(5, set.getXMin(), 0.01f); assertEquals(21, set.getXMax(), 0.01f); assertEquals(1f, set.getYMin(), 0.01f); assertEquals(10f, set.getYMax(), 0.01f); assertEquals(5, set.getEntryForIndex(0).getX(), 0.01f); assertEquals(1, set.getEntryForIndex(0).getY(), 0.01f); set.addEntryOrdered(new Entry(20, 50)); assertEquals(5, set.getEntryCount()); assertEquals(20, set.getEntryForIndex(3).getX(), 0.01f); assertEquals(50, set.getEntryForIndex(3).getY(), 0.01f); assertTrue(set.removeEntry(3)); assertEquals(4, set.getEntryCount()); assertEquals(21, set.getEntryForIndex(3).getX(), 0.01f);
@Override public DataSet<Entry> copy() { List<Entry> entries = new ArrayList<Entry>(); for (int i = 0; i < mValues.size(); i++) { entries.add(mValues.get(i).copy()); } ScatterDataSet copied = new ScatterDataSet(entries, getLabel()); copy(copied); return copied; }
/** * Sets the ScatterShape this DataSet should be drawn with. This will search for an available IShapeRenderer and set this * renderer for the DataSet. * * @param shape */ public void setScatterShape(ScatterChart.ScatterShape shape) { mShapeRenderer = getRendererForShape(shape); }
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; }
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; }
@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); }
ScatterDataSet set1 = new ScatterDataSet(values1, "DS 1"); set1.setScatterShape(ScatterChart.ScatterShape.SQUARE); set1.setColor(ColorTemplate.COLORFUL_COLORS[0]); ScatterDataSet set2 = new ScatterDataSet(values2, "DS 2"); set2.setScatterShape(ScatterChart.ScatterShape.CIRCLE); set2.setScatterShapeHoleColor(ColorTemplate.COLORFUL_COLORS[3]); set2.setScatterShapeHoleRadius(3f); set2.setColor(ColorTemplate.COLORFUL_COLORS[1]); ScatterDataSet set3 = new ScatterDataSet(values3, "DS 3"); set3.setShapeRenderer(new CustomScatterShapeRenderer()); set3.setColor(ColorTemplate.COLORFUL_COLORS[2]); set1.setScatterShapeSize(8f); set2.setScatterShapeSize(8f); set3.setScatterShapeSize(8f);
ScatterDataSet set = new ScatterDataSet(values, ""); Entry closest = set.getEntryForXValue(0, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(0, closest.getX(), 0.01f); assertEquals(10, closest.getY(), 0.01f); closest = set.getEntryForXValue(5, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(5, closest.getX(), 0.01f); assertEquals(80, closest.getY(), 0.01f); closest = set.getEntryForXValue(5.4f, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(5, closest.getX(), 0.01f); assertEquals(80, closest.getY(), 0.01f); closest = set.getEntryForXValue(4.6f, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(5, closest.getX(), 0.01f); assertEquals(80, closest.getY(), 0.01f); closest = set.getEntryForXValue(7, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(7, closest.getX(), 0.01f); assertEquals(100, closest.getY(), 0.01f); closest = set.getEntryForXValue(4f, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(4, closest.getX(), 0.01f); assertEquals(60, closest.getY(), 0.01f); List<Entry> entries = set.getEntriesForXValue(4f); assertEquals(2, entries.size()); assertEquals(60, entries.get(0).getY(), 0.01f);
private void drawLatencyChart(List<Entry> phoneEntriesShifted, List<Entry> waltEntries) { final ScatterDataSet dataSetWalt = new ScatterDataSet(waltEntries, "WALT Events"); dataSetWalt.setColor(Color.BLUE); dataSetWalt.setScatterShape(ScatterChart.ScatterShape.CIRCLE); dataSetWalt.setScatterShapeSize(8f); final ScatterDataSet dataSetPhoneShifted = new ScatterDataSet(phoneEntriesShifted, "Phone Events Shifted"); dataSetPhoneShifted.setColor(Color.RED); dataSetPhoneShifted.setScatterShapeSize(10f); dataSetPhoneShifted.setScatterShape(ScatterChart.ScatterShape.X); final ScatterData scatterData = new ScatterData(dataSetWalt, dataSetPhoneShifted); final Description desc = new Description(); desc.setText(""); desc.setTextSize(12f); latencyChart.setDescription(desc); latencyChart.setData(scatterData); latencyChart.invalidate(); latencyChartLayout.setVisibility(View.VISIBLE); }
@Override public DataSet<Entry> copy() { List<Entry> yVals = new ArrayList<Entry>(); for (int i = 0; i < mValues.size(); i++) { yVals.add(mValues.get(i).copy()); } ScatterDataSet copied = new ScatterDataSet(yVals, getLabel()); copied.mDrawValues = mDrawValues; copied.mValueColors = mValueColors; copied.mColors = mColors; copied.mShapeSize = mShapeSize; copied.mShapeRenderer = mShapeRenderer; copied.mScatterShapeHoleRadius = mScatterShapeHoleRadius; copied.mScatterShapeHoleColor = mScatterShapeHoleColor; copied.mHighlightLineWidth = mHighlightLineWidth; copied.mHighLightColor = mHighLightColor; copied.mHighlightDashPathEffect = mHighlightDashPathEffect; return copied; }
@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); }
entries1.add(new Entry(21, 50)); ScatterDataSet set1 = new ScatterDataSet(entries1, ""); entries2.add(new Entry(20, 5)); ScatterDataSet set2 = new ScatterDataSet(entries2, ""); entries3.add(new Entry(0, -50)); ScatterDataSet set3 = new ScatterDataSet(entries3, ""); set3.setAxisDependency(YAxis.AxisDependency.RIGHT);
@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); }
ScatterDataSet set1 = new ScatterDataSet(yVals1, "DS 1"); set1.setScatterShape(ScatterChart.ScatterShape.SQUARE); set1.setColor(ColorTemplate.COLORFUL_COLORS[0]); ScatterDataSet set2 = new ScatterDataSet(yVals2, "DS 2"); set2.setScatterShape(ScatterChart.ScatterShape.CIRCLE); set2.setScatterShapeHoleColor(ColorTemplate.COLORFUL_COLORS[3]); set2.setScatterShapeHoleRadius(3f); set2.setColor(ColorTemplate.COLORFUL_COLORS[1]); ScatterDataSet set3 = new ScatterDataSet(yVals3, "DS 3"); set3.setShapeRenderer(new CustomScatterShapeRenderer()); set3.setColor(ColorTemplate.COLORFUL_COLORS[2]); set1.setScatterShapeSize(8f); set2.setScatterShapeSize(8f); set3.setScatterShapeSize(8f);
ScatterDataSet set = new ScatterDataSet(values, ""); Entry closest = set.getEntryForXValue(0, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(0, closest.getX(), 0.01f); assertEquals(10, closest.getY(), 0.01f); closest = set.getEntryForXValue(5, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(5, closest.getX(), 0.01f); assertEquals(80, closest.getY(), 0.01f); closest = set.getEntryForXValue(5.4f, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(5, closest.getX(), 0.01f); assertEquals(80, closest.getY(), 0.01f); closest = set.getEntryForXValue(4.6f, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(5, closest.getX(), 0.01f); assertEquals(80, closest.getY(), 0.01f); closest = set.getEntryForXValue(7, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(7, closest.getX(), 0.01f); assertEquals(100, closest.getY(), 0.01f); closest = set.getEntryForXValue(4f, Float.NaN, DataSet.Rounding.CLOSEST); assertEquals(4, closest.getX(), 0.01f); assertEquals(60, closest.getY(), 0.01f); List<Entry> entries = set.getEntriesForXValue(4f); assertEquals(2, entries.size()); assertEquals(60, entries.get(0).getY(), 0.01f);
protected ScatterData generateScatterData() { ScatterData d = new ScatterData(); ArrayList<Entry> entries = new ArrayList<>(); for (float index = 0; index < itemCount; 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; }
final ScatterDataSet dataSetTouch = new ScatterDataSet(touchEntries, "Touch Events"); dataSetTouch.setScatterShape(ScatterChart.ScatterShape.CIRCLE); dataSetTouch.setScatterShapeSize(8f); final ScatterDataSet dataSetLaser = new ScatterDataSet(laserEntries, String.format(Locale.US, "Laser Events Latency=%.1f ms", averageBestShift)); dataSetLaser.setColor(Color.RED); dataSetLaser.setScatterShapeSize(10f); dataSetLaser.setScatterShape(ScatterChart.ScatterShape.X);
@Override public DataSet<Entry> copy() { List<Entry> yVals = new ArrayList<Entry>(); for (int i = 0; i < mValues.size(); i++) { yVals.add(mValues.get(i).copy()); } ScatterDataSet copied = new ScatterDataSet(yVals, getLabel()); copied.mDrawValues = mDrawValues; copied.mValueColors = mValueColors; copied.mColors = mColors; copied.mShapeSize = mShapeSize; copied.mShapeRenderer = mShapeRenderer; copied.mScatterShapeHoleRadius = mScatterShapeHoleRadius; copied.mScatterShapeHoleColor = mScatterShapeHoleColor; copied.mHighlightLineWidth = mHighlightLineWidth; copied.mHighLightColor = mHighLightColor; copied.mHighlightDashPathEffect = mHighlightDashPathEffect; return copied; }
protected ScatterData generateScatterData(int dataSets, float range, int count) { ArrayList<IScatterDataSet> sets = new ArrayList<IScatterDataSet>(); ScatterChart.ScatterShape[] shapes = ScatterChart.ScatterShape.getAllDefaultShapes(); for(int i = 0; i < dataSets; i++) { ArrayList<Entry> entries = new ArrayList<Entry>(); 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; }
@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); }