aiChartsサンプル:積み上げ面積100%チャート

概要

積み上げ面積100%チャートは複数のデータを積み上げて表示しますが、累積した積み上げがどの場所でも100%になるものです。計測された値の累計は100%にならなければならないのでチャートの画面は常に埋まることになります。このチャートは時間の経過とともに変化していく割合のデータを表すのに使われます。

積み上げ面積100%チャートを作るには

積み上げ面積100%チャートを作るには、まずはChartSeriesのインスタンスを作り、チャートタイプ(作図タイプ)をStackedArea100に設定し、データをセットします。

ソースコードは以下のようになります。

サンプルダウンロードはこちら(ZIP,13KB)

イメージ図

XML アクティビティレイアウト


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
  <com.artfulbits.aiCharts.ChartView
    android:id="@+id/chartView"
    chart="@xml/chart"
    android:background="@android:drawable/alert_dark_frame"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>
</LinearLayout>

Java


package com.artfulbits.aiCharts.stackedarea100sample;

import android.app.Activity;
import android.os.Bundle;

import com.artfulbits.aiCharts.ChartView;
import com.artfulbits.aiCharts.Base.ChartSeries;

public class MainActivity extends Activity
{
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		ChartView chartView = (ChartView) findViewById(R.id.chartView);

		ChartSeries series1 = chartView.getSeries().get(0);
		ChartSeries series2 = chartView.getSeries().get(1);

		double[] data1 = { 68, 17, 45, 91, 31, 55, 59, 85, 24, 100 };
		double[] data2 = { 36, 29, 99, 62, 65, 43, 5, 72, 1, 33 };

		series1.getPoints().setData(data1);
		series2.getPoints().setData(data2);
	}
}

XMLチャート


<?xml version="1.0" encoding="utf-8"?>
<ai:chart xmlns:ai="http://www.artfulbits.com/android/aiCharts">
	<ai:area>
		<ai:area.yaxis labels_visible="false"/>
	</ai:area>
	<ai:series type="StackedArea100"/>
	<ai:series type="StackedArea100"/>
</ai:chart>