blob: 6a891caedee5ca433235929df2bfe684df62cf2b [file] [log] [blame]
package com.github.mikephil.charting.data;
import android.graphics.Path;
import com.github.mikephil.charting.charts.ScatterChart.ScatterShape;
import com.github.mikephil.charting.utils.Utils;
import java.util.ArrayList;
public class ScatterDataSet extends BarLineScatterCandleRadarDataSet {
/** the size the scattershape will have, in screen pixels */
private float mShapeSize = 12f;
/**
* the type of shape that is set to be drawn where the values are at,
* default ScatterShape.SQUARE
*/
private ScatterShape mScatterShape = ScatterShape.SQUARE;
/**
* Custom path object the user can provide that is drawn where the values
* are at. This is used when ScatterShape.CUSTOM is set for a DataSet.
*/
private Path mCustomScatterPath = null;
public ScatterDataSet(ArrayList<Entry> yVals, String label) {
super(yVals, label);
// mShapeSize = Utils.convertDpToPixel(8f);
}
@Override
public DataSet copy() {
ArrayList<Entry> yVals = new ArrayList<Entry>();
for (int i = 0; i < mYVals.size(); i++) {
yVals.add(mYVals.get(i).copy());
}
ScatterDataSet copied = new ScatterDataSet(yVals, getLabel());
copied.mColors = mColors;
copied.mShapeSize = mShapeSize;
copied.mScatterShape = mScatterShape;
copied.mCustomScatterPath = mCustomScatterPath;
copied.mHighLightColor = mHighLightColor;
return copied;
}
/**
* Sets the size the drawn scattershape will have. This only applies for non
* custom shapes. Default 12f
*
* @param size
*/
public void setScatterShapeSize(float size) {
mShapeSize = Utils.convertDpToPixel(size);
}
/**
* returns the currently set scatter shape size
*
* @return
*/
public float getScatterShapeSize() {
return mShapeSize;
}
/**
* Sets the shape that is drawn on the position where the values are at. If
* "CUSTOM" is chosen, you need to call setCustomScatterShape(...) and
* provide a path object that is drawn as the custom scattershape.
*
* @param shape
*/
public void setScatterShape(ScatterShape shape) {
mScatterShape = shape;
}
/**
* returns all the different scattershapes the chart uses
*
* @return
*/
public ScatterShape getScatterShape() {
return mScatterShape;
}
/**
* Sets a path object as the shape to be drawn where the values are at. Do
* not forget to call setScatterShape(...) and set the shape to
* ScatterShape.CUSTOM.
*
* @param shape
*/
public void setCustomScatterShape(Path shape) {
mCustomScatterPath = shape;
}
/**
* returns the custom path / shape that is specified to be drawn where the
* values are at
*
* @return
*/
public Path getCustomScatterShape() {
return mCustomScatterPath;
}
}