android 使用 achartengine 画柱图 和 饼图(柱图)

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

源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值