/
Bar3DChartActivity.java
103 lines (77 loc) · 3.16 KB
/
Bar3DChartActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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.DataEntry;
import com.anychart.chart.common.dataentry.ValueDataEntry;
import com.anychart.charts.Cartesian3d;
import com.anychart.data.Mapping;
import com.anychart.data.Set;
import com.anychart.enums.Anchor;
import com.anychart.enums.HoverMode;
import com.anychart.enums.TooltipPositionMode;
import com.anychart.sample.R;
import java.util.ArrayList;
import java.util.List;
public class Bar3DChartActivity 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));
Cartesian3d bar3d = AnyChart.bar3d();
bar3d.animation(true);
bar3d.padding(10d, 40d, 5d, 20d);
bar3d.title("Top 3 Products with Region Sales Data");
bar3d.yScale().minimum(0d);
bar3d.xAxis(0).labels()
.rotation(-90d)
.padding(0d, 0d, 20d, 0d);
bar3d.yAxis(0).labels().format("${%Value}{groupsSeparator: }");
bar3d.yAxis(0).title("Revenue in Dollars");
List<DataEntry> data = new ArrayList<>();
data.add(new CustomDataEntry("Nail polish", 6229, 4376, 4054, 2381));
data.add(new CustomDataEntry("Eyebrow pencil", 9332, 8987, 5067, 1401));
data.add(new CustomDataEntry("Lipstick", 9256, 7376, 5054, 981));
Set set = Set.instantiate();
set.data(data);
Mapping bar1Data = set.mapAs("{ x: 'x', value: 'value' }");
Mapping bar2Data = set.mapAs("{ x: 'x', value: 'value2' }");
Mapping bar3Data = set.mapAs("{ x: 'x', value: 'value3' }");
Mapping bar4Data = set.mapAs("{ x: 'x', value: 'value4' }");
bar3d.bar(bar1Data)
.name("Florida");
bar3d.bar(bar2Data)
.name("Texas");
bar3d.bar(bar3Data)
.name("Arizona");
bar3d.bar(bar4Data)
.name("Nevada");
bar3d.legend().enabled(true);
bar3d.legend().fontSize(13d);
bar3d.legend().padding(0d, 0d, 20d, 0d);
bar3d.interactivity().hoverMode(HoverMode.SINGLE);
bar3d.tooltip()
.positionMode(TooltipPositionMode.POINT)
.position("right")
.anchor(Anchor.LEFT_CENTER)
.offsetX(5d)
.offsetY(0d)
.format("${%Value}");
bar3d.zAspect("10%")
.zPadding(20d)
.zAngle(45d)
.zDistribution(true);
anyChartView.setChart(bar3d);
}
private class CustomDataEntry extends ValueDataEntry {
CustomDataEntry(String x, Number value, Number value2, Number value3, Number value4) {
super(x, value);
setValue("value2", value2);
setValue("value3", value3);
setValue("value4", value4);
}
}
}