2 柱图
预览图
LinearLayout mLinear = (LinearLayout) findViewById(R.id.chart);
mLinear.setBackgroundColor(Color.BLACK);
例如 2013年与2013年
String[] titles = new String[] { "2012", "2013" };
两年的数据
List<double[]> values = new ArrayList<double[]>();
values.add(new double[] { 1423, 1230, 1424, 1524, 1590, 1920, 2203,
2120, 1950, 1550, 1260, 1400 });
values.add(new double[] { 523, 730, 924, 1054, 790, 920, 1200, 1100,
950, 1500, 1100, 1500 });
//柱状图颜色
两年数据 柱形图的颜色
int[] colors = new int[] { Color.RED, Color.BLUE };
创建 XYMultipleSeriesRenderer
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(16);
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
//根据两年的(两种颜色) 创建各自的
</pre><pre name="code" class="java"> XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(16);
renderer.setChartTitleTextSize(20);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
int length = colors.length;
for (int i = 0; i < length; i++) {
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(colors[i] );
renderer.addSeriesRenderer(r);
}
</pre><pre name="code" class="java"> setChartSettings(renderer, "柱形图示例", "月份", "数量", 0.5, 12.5, 0, 2400,
Color.GRAY, Color.LTGRAY);// 设置柱形图标题,横轴(X轴)、纵轴(Y轴)、最小的伸所刻度、最大的伸所刻度
</pre><pre name="code" class="java"> setChartSettings 方法
protected void setChartSettings(XYMultipleSeriesRenderer renderer,
String title, String xTitle, String yTitle, double xMin,
double xMax, double yMin, double yMax, int axesColor,
int labelsColor) {
renderer.setChartTitle(title);
renderer.setXTitle(xTitle);
renderer.setYTitle(yTitle);
renderer.setXAxisMin(xMin);
renderer.setXAxisMax(xMax);
renderer.setYAxisMin(yMin);
renderer.setYAxisMax(yMax);
renderer.setAxesColor(axesColor);
renderer.setLabelsColor(labelsColor);
}
<pre name="code" class="java">renderer.getSeriesRendererAt(0).setDisplayChartValues(true);// 在第0条柱形图上显示数据
renderer.getSeriesRendererAt(1).setDisplayChartValues(true);// 在第1条柱形图上显示数据
renderer.setXLabels(12);
renderer.setYLabels(10);
renderer.setXLabelsAlign(Align.LEFT);// 数据从左到右显示
renderer.setYLabelsAlign(Align.LEFT);
renderer.setPanEnabled(true, false);
renderer.setZoomEnabled(true);
renderer.setZoomButtonsVisible(true);// 显示放大缩小功能按钮
renderer.setZoomRate(1.1f);
renderer.setBarSpacing(0.5f);// 柱形图间隔
创建mChartView
</pre><pre name="code" class="java"> mChartView = ChartFactory.getBarChartView(getApplicationContext(),
<span style="white-space:pre"> </span><span style="background-color: rgb(255, 102, 102);">buildBarDataset</span>(titles, values), renderer, Type.DEFAULT);
<span style="white-space:pre"> </span>renderer.setClickEnabled(true);
<span style="white-space:pre"> </span>//renderer.set
<span style="white-space:pre"> </span>mLinear.addView(mChartView, new LayoutParams(
<span style="white-space:pre"> </span>LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
</pre><pre name="code" class="java">
protected XYMultipleSeriesDataset <span style="color:#ff6666;">buildBarDataset</span>(String[] titles,
<span style="white-space:pre"> </span>List<double[]> values) {//柱形图的数据源和饼图差不多,也是由一些键值对组成
<span style="white-space:pre"> </span>XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
<span style="white-space:pre"> </span>int length = titles.length;
<span style="white-space:pre"> </span>for (int i = 0; i < length; i++) {
<span style="white-space:pre"> </span>CategorySeries series = new CategorySeries(titles[i]);
<span style="white-space:pre"> </span>double[] v = values.get(i);
<span style="white-space:pre"> </span>int seriesLength = v.length;
<span style="white-space:pre"> </span>for (int k = 0; k < seriesLength; k++) {
<span style="white-space:pre"> </span>series.add(v[k]);
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>dataset.addSeries(series.toXYSeries());
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>return dataset;
<span style="white-space:pre"> </span>}
源码