public ScatterChartModel() { final List<ScatterValue> scatterValues = new ArrayList<>(); scatterValues.add(new ScatterValue(2)); scatterValues.add(new ScatterValue(3)); scatterValues.add(new ScatterValue(4)); scatterValues.add(new ScatterValue(6)); scatterValues.add(new ScatterValue(9)); scatterValues.add(new ScatterValue(2)); scatterValues.add(new ScatterValue(4)); scatterValues.add(new ScatterValue(6)); scatterValues.add(new ScatterValue(9)); scatterValues.add(new ScatterValue(0)); scatterValues.add(new ScatterValue(8)); scatterValues.add(new ScatterValue(9)); scatterValues.add(new ScatterValue(4)); scatterValues.add(new ScatterValue(1)); scatterValues.add(new ScatterValue(2)); scatterDataSet = new ScatterDataSet(scatterValues); scatterDataSet.setAutoWidth(true); }
ScatterValue point = dataSet.getEntryForIndex(i); if (!point.isVisible()) continue; float yPosition = (max - point.getValue()) / (max - min) * mContentRect.height() - shapeHeight * 0.5f; point.setCoordinate(xPosition, yPosition); if (point.getColor() != Color.TRANSPARENT) { dataSet.getShape().setColorFilter(point.getColor(), PorterDuff.Mode.SRC_OVER);
@Override public int getEntryIndexByCoordinate(float x, float y) { int index = -1; if (scatterData.getDataSets().size() > 0) { ScatterDataSet dataSet = scatterData.getDataSets().get(0); RectF rect = new RectF(); float shapeWidth = dataSet.getShape().getIntrinsicWidth(); float shapeHeight = dataSet.getShape().getIntrinsicHeight(); for (int i = 0; i < dataSet.getValues().size(); i++) { final ScatterValue value = dataSet.getEntryForIndex(i); float pX = value.getX(); float pY = value.getY(); rect.set(pX, pY, pX + shapeWidth, pY + shapeHeight); if (rect.contains(x, y)) { index = i; break; } } return index; } return super.getEntryIndexByCoordinate(x, y); }
public ScatterChart2Model() { final List<ScatterValue> scatterValues = new ArrayList<>(); scatterValues.add(new ScatterValue(1f)); scatterValues.add(new ScatterValue(2f)); scatterValues.add(new ScatterValue(1f)); scatterValues.add(new ScatterValue(2f)); scatterValues.add(new ScatterValue(1f)); scatterValues.add(new ScatterValue(2f)); scatterDataSet = new ScatterDataSet(scatterValues); scatterDataSet.setMinValueOffsetPercent(0.5f); scatterDataSet.setMaxValueOffsetPercent(0.5f); scatterDataSet.setAutoWidth(false); scatterDataSet.addTextValueRenderer(new TextValueRenderer() { @Override public void render(Canvas canvas, Paint textPaint, int index, float x, float y) { textPaint.setTextSize(24f); canvas.drawText(textList.get(index), x, y, textPaint); } }); }