Hello
In last Post we check how to hide buttons in layout In this post i want to show you how to create bar chart in android using Achartengine . Achartengine is charting software library for Android applications. Mobile phones, tablets and other gadgets running Android will probably benefit of this charting library.
you can check more for Achartengine http://www.achartengine.org/content/demo.html
and all the source code available here for Achartengine http://www.achartengine.org/download/
This is the tested code for bar graph it is the best graph I like it very much here is code...
In last Post we check how to hide buttons in layout In this post i want to show you how to create bar chart in android using Achartengine . Achartengine is charting software library for Android applications. Mobile phones, tablets and other gadgets running Android will probably benefit of this charting library.
you can check more for Achartengine http://www.achartengine.org/content/demo.html
and all the source code available here for Achartengine http://www.achartengine.org/download/
This is the tested code for bar graph it is the best graph I like it very much here is code...
package
com.tapt.combinedtest;
import
java.util.ArrayList;
import
java.util.List;
import
org.achartengine.ChartFactory;
import
org.achartengine.GraphicalView;
import
org.achartengine.chart.BarChart;
import
org.achartengine.chart.LineChart;
import
org.achartengine.chart.PointStyle;
import
org.achartengine.model.XYMultipleSeriesDataset;
import
org.achartengine.model.XYSeries;
import
org.achartengine.renderer.XYMultipleSeriesRenderer;
import
org.achartengine.renderer.XYSeriesRenderer;
import
android.graphics.Color;
import
android.graphics.Paint.Align;
import
android.app.Activity;
import
android.os.Bundle;
import
android.widget.RelativeLayout;
public
class
CombinedTrial
extends
Activity {
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
final
GraphicalView gv =createIntent();
RelativeLayout rl=(RelativeLayout)findViewById(R.id.graph);
rl.addView(gv);
}
public
GraphicalView createIntent() {
String[] titles =
new
String[] {
"Target"
};
double
[] y1 =
new
double
[] {
20
,
30
,
10
,
40
,
50
,
20
,
10
,
30
,
30
,
40
,
45
,
25
};
double
barview =
12
;
int
maxvalue=
60
;
String[] x1=
new
String[] {
"Jan"
,
"Feb"
,
"Mar"
,
"Apr"
,
"May"
,
"Jun"
,
"Jul"
,
"Aug"
,
"Sep"
,
"Oct"
,
"Nov"
,
"Dec"
};
List<
double
[]> x =
new
ArrayList<
double
[]>();
for
(
int
i =
0
; i < titles.length; i++) {
x.add(
new
double
[] {
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
});
}
if
(maxvalue==
0
){
maxvalue=
10000
;
}
//Line Portion//
//======================================================================
List<
double
[]> values =
new
ArrayList<
double
[]>();
values.add(
new
double
[] {
20
,
20
,
20
,
20
,
20
,
20
,
20
,
20
,
20
,
20
,
20
,
20
});
//=======================================================================
int
[] colors =
new
int
[] { Color.GREEN};
PointStyle[] styles =
new
PointStyle[] { PointStyle.CIRCLE};
XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles);
renderer.setPointSize(
0
);
int
length = renderer.getSeriesRendererCount();
for
(
int
i =
0
; i < length; i++) {
XYSeriesRenderer r = (XYSeriesRenderer) renderer.getSeriesRendererAt(i);
r.setLineWidth(
5
);
r.setFillPoints(
true
);
}
setChartSettings(renderer,
"Sales Reports"
,
""
,
"Amount (Rs)"
,
0.5
, barview,
0
, maxvalue,
Color.LTGRAY, Color.LTGRAY,x1);
renderer.setXLabels(
0
);
renderer.setYLabels(
10
);
renderer.setShowGrid(
true
);
renderer.setXLabelsAlign(Align.RIGHT);
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setZoomButtonsVisible(
false
);
renderer.setClickEnabled(
true
);
XYSeries waterSeries =
new
XYSeries(
"Sales"
);
waterSeries.add(
1
, y1[
0
]);
waterSeries.add(
2
, y1[
1
]);
waterSeries.add(
3
, y1[
2
]);
waterSeries.add(
4
, y1[
3
]);
waterSeries.add(
5
, y1[
4
]);
waterSeries.add(
6
, y1[
5
]);
waterSeries.add(
7
, y1[
6
]);
waterSeries.add(
8
, y1[
7
]);
waterSeries.add(
9
, y1[
8
]);
waterSeries.add(
10
, y1[
9
]);
waterSeries.add(
11
, y1[
10
]);
waterSeries.add(
12
, y1[
11
]);
renderer.setBarSpacing(
0.5
);
XYSeriesRenderer waterRenderer =
new
XYSeriesRenderer();
waterRenderer.setColor(Color.argb(
250
,
0
,
210
,
250
));
XYMultipleSeriesDataset dataset = buildDataset(titles, x, values);
dataset.addSeries(
0
, waterSeries);
renderer.addSeriesRenderer(
0
, waterRenderer);
waterRenderer.setDisplayChartValues(
true
);
waterRenderer.setChartValuesTextSize(
10
);
String[] types =
new
String[] { BarChart.TYPE, LineChart.TYPE};
final
GraphicalView grfv = ChartFactory.getCombinedXYChartView(
this
, dataset, renderer, types);
return
grfv;
}
protected
static
XYMultipleSeriesRenderer buildRenderer(
int
[] colors, PointStyle[] styles) {
XYMultipleSeriesRenderer renderer =
new
XYMultipleSeriesRenderer();
setRenderer(renderer, colors, styles);
return
renderer;
}
protected
static
void
setRenderer(XYMultipleSeriesRenderer renderer,
int
[] colors, PointStyle[] styles) {
renderer.setAxisTitleTextSize(
16
);
renderer.setChartTitleTextSize(
20
);
renderer.setLabelsTextSize(
12
);
renderer.setLegendTextSize(
15
);
renderer.setPointSize(5f);
renderer.setMargins(
new
int
[] {
35
,
65
,
10
,
15
});
int
length = colors.length;
for
(
int
i =
0
; i < length; i++) {
XYSeriesRenderer r =
new
XYSeriesRenderer();
r.setColor(colors[i]);
r.setPointStyle(styles[i]);
renderer.addSeriesRenderer(r);
}
}
protected
static
void
setChartSettings(XYMultipleSeriesRenderer renderer, String title, String xTitle,
String yTitle,
double
xMin,
double
xMax,
double
yMin,
double
yMax,
int
axesColor,
int
labelsColor,String[] x1) {
renderer.setChartTitle(title);
renderer.isClickEnabled();
renderer.setXTitle(xTitle);
renderer.setYTitle(yTitle);
renderer.setXAxisMin(xMin);
renderer.setXAxisMax(xMax);
renderer.setYAxisMin(yMin);
renderer.setYAxisMax(yMax);
renderer.setAxesColor(axesColor);
renderer.setLabelsColor(labelsColor);
renderer.setXLabelsAngle(-
90
);
for
(
int
i=
1
;i<=((x1.length));i++){
renderer.addXTextLabel(i, x1[(i-
1
)]);
}
}
protected
static
XYMultipleSeriesDataset buildDataset(String[] titles, List<
double
[]> xValues,
List<
double
[]> yValues) {
XYMultipleSeriesDataset dataset =
new
XYMultipleSeriesDataset();
addXYSeries(dataset, titles, xValues, yValues,
0
);
return
dataset;
}
public
static
void
addXYSeries(XYMultipleSeriesDataset dataset, String[] titles, List<
double
[]> xValues,
List<
double
[]> yValues,
int
scale) {
int
length = titles.length;
for
(
int
i =
0
; i < length; i++) {
XYSeries series =
new
XYSeries(titles[i], scale);
double
[] xV = xValues.get(i);
double
[] yV = yValues.get(i);
int
seriesLength = xV.length;
for
(
int
k =
0
; k < seriesLength; k++) {
series.add(xV[k], yV[k]);
}
dataset.addSeries(series);
}
}
}
No comments:
Post a Comment