1.設(shè)置XYMultipleSeriesRenderer主要描繪器XYMultipleSeriesRendererrenderer=bu" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

AChartEngine應(yīng)用之BarChart(柱形圖)

系統(tǒng) 2045 0

AChartEngine應(yīng)用之BarChart(柱形圖)

接著上文,構(gòu)建柱形圖的步驟和構(gòu)建餅圖的步驟一樣,主要分為以下三步,還需要在項(xiàng)目中引入AChartEngine依賴jar包,在Manifest中添加:<activityandroid:name="org.achartengine.GraphicalActivity" />

1.設(shè)置XYMultipleSeriesRenderer主要描繪器

XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);// 柱形圖顏色設(shè)置

setChartSettings(renderer, "柱形圖示例", "月份", "數(shù)量", 0.5, 12.5, 0, 2400,

Color.GRAY, Color.LTGRAY);// 設(shè)置柱形圖標(biāo)題,橫軸(X軸)、縱軸(Y軸)、最小的伸所刻度、最大的伸所刻度

renderer.getSeriesRendererAt(0).setDisplayChartValues(true);// 在第0條柱形圖上顯示數(shù)據(jù)

renderer.getSeriesRendererAt(1).setDisplayChartValues(true);// 在第1條柱形圖上顯示數(shù)據(jù)

renderer.setXLabels(12);

renderer.setYLabels(10);

renderer.setXLabelsAlign(Align.LEFT);// 數(shù)據(jù)從左到右顯示

renderer.setYLabelsAlign(Align.LEFT);

renderer.setPanEnabled(true, false);

renderer.setZoomEnabled(true);

renderer.setZoomButtonsVisible(true);// 顯示放大縮小功能按鈕

renderer.setZoomRate(1.1f);

renderer.setBarSpacing(0.5f);// 柱形圖間隔

2.構(gòu)建數(shù)據(jù)源XYMultipleSeriesDataset

protected XYMultipleSeriesDataset buildBarDataset(String[] titles,

List<double[]> values) {//柱形圖的數(shù)據(jù)源和餅圖差不多,也是由一些鍵值對組成

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

int length = titles.length;

for (int i = 0; i < length; i++) {

CategorySeries series = new CategorySeries(titles[i]);

double[] v = values.get(i);

int seriesLength = v.length;

for (int k = 0; k < seriesLength; k++) {

series.add(v[k]);

}

dataset.addSeries(series.toXYSeries());

}

return dataset;

}

3.通過ChartFactory獲取柱形圖

mChartView = ChartFactory.getBarChartView(getApplicationContext(),

buildBarDataset(titles, values), renderer, Type.DEFAULT);

renderer.setClickEnabled(true);

//renderer.set

mLinear.addView(mChartView, new LayoutParams(

LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

運(yùn)行效果圖:

AChartEngine應(yīng)用之BarChart(柱形圖)

code

    package com.qiuzhping.achart;

import java.util.ArrayList;
import java.util.List;

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.BarChart.Type;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.SimpleSeriesRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.Paint.Align;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;

public class BarChartBuilder extends Activity {

	private GraphicalView mChartView;

	public void back(View v) {
		Log.i("qiuzhping", "back onClick");
		Intent intent = new Intent();
		intent.setClass(BarChartBuilder.this, MainActivity.class);
		startActivity(intent);
		BarChartBuilder.this.finish();
	}

	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);
	}

	protected XYMultipleSeriesRenderer buildBarRenderer(int[] colors) {
		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);
		}
		return renderer;
	}

	protected XYMultipleSeriesDataset buildBarDataset(String[] titles,
			List<double[]> values) {//柱形圖的數(shù)據(jù)源和餅圖差不多,也是由一些鍵值對組成
		XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
		int length = titles.length;
		for (int i = 0; i < length; i++) {
			CategorySeries series = new CategorySeries(titles[i]);
			double[] v = values.get(i);
			int seriesLength = v.length;
			for (int k = 0; k < seriesLength; k++) {
				series.add(v[k]);
			}
			dataset.addSeries(series.toXYSeries());
		}
		return dataset;
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.xy_chart);
		LinearLayout mLinear = (LinearLayout) findViewById(R.id.chart);
		mLinear.setBackgroundColor(Color.BLACK);

		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 renderer = buildBarRenderer(colors);// 柱形圖顏色設(shè)置
		setChartSettings(renderer, "柱形圖示例", "月份", "數(shù)量", 0.5, 12.5, 0, 2400,
				Color.GRAY, Color.LTGRAY);// 設(shè)置柱形圖標(biāo)題,橫軸(X軸)、縱軸(Y軸)、最小的伸所刻度、最大的伸所刻度
		renderer.getSeriesRendererAt(0).setDisplayChartValues(true);// 在第0條柱形圖上顯示數(shù)據(jù)
		renderer.getSeriesRendererAt(1).setDisplayChartValues(true);// 在第1條柱形圖上顯示數(shù)據(jù)
		renderer.setXLabels(12);
		renderer.setYLabels(10);
		renderer.setXLabelsAlign(Align.LEFT);// 數(shù)據(jù)從左到右顯示
		renderer.setYLabelsAlign(Align.LEFT);
		renderer.setPanEnabled(true, false);
		renderer.setZoomEnabled(true);
		renderer.setZoomButtonsVisible(true);// 顯示放大縮小功能按鈕
		renderer.setZoomRate(1.1f);
		renderer.setBarSpacing(0.5f);// 柱形圖間隔

		if (mChartView == null) {// 構(gòu)建柱形圖
			mChartView = ChartFactory.getBarChartView(getApplicationContext(),
					buildBarDataset(titles, values), renderer, Type.DEFAULT);
			renderer.setClickEnabled(true);
			//renderer.set
			mLinear.addView(mChartView, new LayoutParams(
					LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
		} else
			mChartView.repaint();
	}
}
  

對應(yīng)的完整項(xiàng)目:http://download.csdn.net/detail/qiu_11/6854803

未完待續(xù)。。。。。

AChartEngine應(yīng)用系列文章

(一)AChartEngine簡介

(二)AChartEngine應(yīng)用之PieChart(餅圖)

(三) AChartEngine應(yīng)用之BarChart(柱形圖)

(四) AChartEngine應(yīng)用之PieChart(動(dòng)態(tài)餅圖,允許產(chǎn)生動(dòng)態(tài)數(shù)據(jù)并顯示)

(五) AChartEngine應(yīng)用之LineChart(模擬生命特征值圖)

(六) AChartEngine應(yīng)用之LineChart(模擬三角函數(shù)sin,cos)

(七) AChartEngine高級應(yīng)用 CombinedXYChart (組合統(tǒng)計(jì)圖)






AChartEngine應(yīng)用之BarChart(柱形圖)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲精品乱码一区二区在线观看 | 男女乱淫真视频免费一级毛片 | 天天操夜夜拍 | 国产精品美女久久久久久 | 国产精品久久久久久久成人午夜 | 精品日产一区二区三区手机 | 美女被a到爽视频在线观看 美女被cao的视频免费看 | 中文字幕日韩哦哦哦 | 亚洲成人黄色在线 | 99久久这里只精品国产免费 | 国产精品亚洲欧美一级久久精品 | 91精品国产人成网站 | 国产亚洲精品成人一区看片 | 国产 日韩 欧美 亚洲 | 一道本一区二区三区 | 欧美日韩中文字幕在线 | 日韩城人视频 | 日日摸夜夜添夜夜添久久 | 在线观看麻豆精品国产不卡 | 理论毛片| 亚洲成人网在线 | 中文字幕或区 | 日本天天谢天天要天天爱 | 狠狠色噜噜狠狠狠狠米奇777 | 国产99欧美精品久久精品久久 | 精品色 | 亚洲在线播放视频 | 一级做a爱 一区 | 天天操天天摸天天爽 | 国产成人a视频在线观看 | 999福利视频| 久久爱99re | 亚洲精品九色在线网站 | 久久久噜噜噜久久老司机 | 亚洲一区二区三区在线视频 | 在线观看国产一区二区三区99 | 亚洲精品第一国产麻豆 | 正在播放亚洲 | 好吊妞视频一区二区 | 国产精品免费看 | 日韩爱爱视频 |