aiChartsサンプル:円チャート

概要

円チャートは円形のチャートで、相対的な大小および頻度を表す区分分けが施されています。円チャートでは弧の長さ(従って中心角と面積も同様に)は全体に対する割合と円に対する割合が同じになっています。すべての区分を合わせると円形になります。円チャートはビジネス界およびマスメディアで幅広く使われていますが、科学および技術分野で使われるのは稀です。円チャートは全体の中でどれだけの割合を示しているかを表すのに適しています。

円チャートは一つのデータセットを使用して図示するものであり、あまり小さく分類されていない方が見栄えよく、また分かりやすく作ることができます。しかし、各々の中心角からそれどれのデータ数などを具体的に見ることはとても難しいので、量的なものを表すのには向いていません。

円チャートを作るには

円チャートを作るには、まずはChartSeriesのインスタンスを作り、チャートタイプ(作図タイプ)をPieに設定し、データをセットします。

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

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

イメージ図

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.piesample;

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

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

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 series = chartView.getSeries().get(0);

        double[] data = { 973, 4054, 732, 577, 337, 34 };
        String[] labels = { "Africa", "Asia", "Europe",
            "Latin America and the Caribbean", "Northern America", "Oceania" };

        for (int i = 0; i < data.length; i++)
        {
            ChartPoint point = series.getPoints().addXY(i, data[i]);

            point.setLabel(labels[i]);
        }
    }
}

XMLチャート


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

    <ai:title
        text="World populations"
        dock="Top" />
    <ai:legend
        dock="Right"
        align="Far"
        background="@android:drawable/alert_dark_frame" />
</ai:chart>