package com.anychart.sample.charts;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.anychart.AnyChart;
import com.anychart.AnyChartView;
import com.anychart.chart.common.dataentry.BubbleDataEntry;
import com.anychart.chart.common.dataentry.DataEntry;
import com.anychart.charts.Scatter;
import com.anychart.sample.R;
import java.util.ArrayList;
import java.util.List;
public class BubbleChartActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chart_common);
AnyChartView anyChartView = findViewById(R.id.any_chart_view);
anyChartView.setProgressBar(findViewById(R.id.progress_bar));
Scatter bubble = AnyChart.bubble();
bubble.animation(true);
bubble.title().enabled(true);
bubble.title().useHtml(true);
bubble.title()
.padding(0d, 0d, 10d, 0d)
.text("Best sportsmen training data ' +\n" +
" '
' +\n" +
" '(bubble size means duration, each bubble represents one training)");
bubble.padding(20d, 20d, 10d, 20d);
bubble.yGrid(true)
.xGrid(true)
.xMinorGrid(true)
.yMinorGrid(true);
bubble.minBubbleSize(5d)
.maxBubbleSize(40d);
bubble.xAxis(0)
.title("Average pulse during training")
.minorTicks(true);
bubble.yAxis(0)
.title("Average power")
.minorTicks(true);
bubble.legend().enabled(true);
bubble.labels().padding(0d, 0d, 10d, 0d);
List data = new ArrayList<>();
data.add(new CustomBubbleDataEntry(1, 184, 113, "10/13/2014", 120));
data.add(new CustomBubbleDataEntry(1, 180, 94, "03/25/2015", 45));
data.add(new CustomBubbleDataEntry(1, 145, 137, "11/23/2014", 123));
data.add(new CustomBubbleDataEntry(1, 136, 89, "02/02/2015", 89));
data.add(new CustomBubbleDataEntry(1, 180, 96, "12/24/2014", 118));
data.add(new CustomBubbleDataEntry(1, 149, 113, "11/20/2014", 60));
data.add(new CustomBubbleDataEntry(1, 161, 94, "04/10/2015", 87));
data.add(new CustomBubbleDataEntry(1, 168, 141, "02/03/2015", 45));
data.add(new CustomBubbleDataEntry(1, 173, 127, "01/14/2015", 89));
bubble.bubble(data)
.name("Christopher Sanchez");
data.clear();
data.add(new CustomBubbleDataEntry(2, 165, 145, "10/22/2014", 95));
data.add(new CustomBubbleDataEntry(2, 147, 71, "07/25/2014", 53));
data.add(new CustomBubbleDataEntry(2, 157, 138, "08/18/2014", 115));
data.add(new CustomBubbleDataEntry(2, 179, 107, "07/05/2014", 91));
data.add(new CustomBubbleDataEntry(2, 187, 65, "06/21/2014", 90));
data.add(new CustomBubbleDataEntry(2, 142, 139, "11/05/2014", 94));
data.add(new CustomBubbleDataEntry(2, 136, 90, "06/22/2014", 90));
data.add(new CustomBubbleDataEntry(2, 166, 70, "09/18/2014", 54));
data.add(new CustomBubbleDataEntry(2, 161, 131, "01/07/2015", 121));
bubble.bubble(data)
.name("Judy Evans");
data.clear();
data.add(new CustomBubbleDataEntry(3, 145, 141, "09/15/2014", 95));
data.add(new CustomBubbleDataEntry(3, 174, 144, "10/28/2014", 53));
data.add(new CustomBubbleDataEntry(3, 180, 94, "03/03/2015", 115));
data.add(new CustomBubbleDataEntry(3, 170, 142, "10/29/2014", 91));
data.add(new CustomBubbleDataEntry(3, 146, 120, "02/28/2015", 90));
data.add(new CustomBubbleDataEntry(3, 164, 66, "06/24/2014", 94));
data.add(new CustomBubbleDataEntry(3, 166, 137, "03/24/2015", 90));
data.add(new CustomBubbleDataEntry(3, 181, 121, "06/02/2014", 54));
bubble.bubble(data)
.name("Walter Burke");
data.clear();
data.add(new CustomBubbleDataEntry(4, 169, 84, "05/16/2014", 46));
data.add(new CustomBubbleDataEntry(4, 176, 123, "01/10/2015", 43));
data.add(new CustomBubbleDataEntry(4, 163, 106, "08/06/2014", 105));
data.add(new CustomBubbleDataEntry(4, 167, 96, "09/01/2014", 90));
data.add(new CustomBubbleDataEntry(4, 162, 131, "05/24/2014", 91));
data.add(new CustomBubbleDataEntry(4, 142, 124, "12/24/2014", 112));
data.add(new CustomBubbleDataEntry(4, 142, 70, "01/16/2015", 56));
data.add(new CustomBubbleDataEntry(4, 174, 89, "02/09/2015", 90));
bubble.bubble(data)
.name("Daniel Williamson");
bubble.tooltip()
.useHtml(true)
.fontColor("#fff")
.format("function() {\n" +
" return this.getData('data') + '
' +\n" +
" 'Power: ' +\n" +
" this.getData('value') + '
' +\n" +
" 'Pulse: ' +\n" +
" this.getData('x') + '
' +\n" +
" 'Duration: ' +\n" +
" this.getData('size') + ' min.';\n" +
" }");
anyChartView.setChart(bubble);
}
private class CustomBubbleDataEntry extends BubbleDataEntry {
CustomBubbleDataEntry(Integer training, Integer x, Integer value, String data, Integer size) {
super(x, value, size);
setValue("training", training);
setValue("data", data);
}
}
}