package com.github.mikephil.charting.charts;
import android.content.Context;
import android.util.AttributeSet;
import com.github.mikephil.charting.data.BubbleData;
import com.github.mikephil.charting.data.BubbleDataSet;
import com.github.mikephil.charting.interfaces.BubbleDataProvider;
import com.github.mikephil.charting.renderer.BubbleChartRenderer;
/**
* The BubbleChart. Draws bubbles. Bubble chart implementation: Copyright 2015
* Pierre-Marc Airoldi Licensed under Apache License 2.0. In the BubbleChart, it
* is the area of the bubble, not the radius or diameter of the bubble that
* conveys the data.
*
* @author Philipp Jahoda
*/
public class BubbleChart extends BarLineChartBase<BubbleData> implements BubbleDataProvider {
public BubbleChart(Context context) {
super(context);
}
public BubbleChart(Context context, AttributeSet attrs) {
super(context, attrs);
}
public BubbleChart(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void init() {
super.init();
mRenderer = new BubbleChartRenderer(this, mAnimator, mViewPortHandler);
}
@Override
protected void calcMinMax() {
super.calcMinMax();
if (mDeltaX == 0 && mData.getYValCount() > 0)
mDeltaX = 1;
mXChartMin = -0.5f;
mXChartMax = (float) mData.getXValCount() - 0.5f;
if (mRenderer != null) {
for (BubbleDataSet set : mData.getDataSets()) {
final float xmin = set.getXMin();
final float xmax = set.getXMax();
if (xmin < mXChartMin)
mXChartMin = xmin;
if (xmax > mXChartMax)
mXChartMax = xmax;
}
}
mDeltaX = Math.abs(mXChartMax - mXChartMin);
}
public BubbleData getBubbleData() {
return mData;
}
}