LoginSignup
22
25

More than 5 years have passed since last update.

Androidでグラフを描写する(MPAndroidChart)

Last updated at Posted at 2016-01-25

Androidでグラフを描写したい。
Webだと、色々なライブラリの情報があるけど、Androidネイティブだと経験もなく、あまり知りません。Androidでは「MPAndroidChart」が標準のようですね。

利用準備

1.GradleScriptに追記
2.SyncGradle
3.View(XML)ファイル追加
4.クラスの修正

1.GradleScriptに追記

build.gradle
Module:app
・・・
・・
//ファイル末尾にに以下を追加
repositories {
    maven { url "https://jitpack.io" }
}
dependencies {
    compile 'com.github.PhilJay:MPAndroidChart:v2.1.0'
}

2.SyncGradle

IDEの上部にある、Syncを押下する。
↓一番左のボタン押下して、5分待ちます。
syncgradle.png

3.View(XML)ファイル追加

ファイル名はなんでも良いので、作る

chart.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.github.mikephil.charting.charts.BarChart
        android:id="@+id/bar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
</LinearLayout>

4.クラスの修正

クラスにて、グラフで表現したいデータを投入する

MainActivity.java
BarChart CObj;
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.chart);
  CObj = (BarChart) findViewById(R.id.bar);
  CObj.getAxisLeft().setAxisMaxValue(10000f);
  CObj.getAxisLeft().setAxisMinValue(1000f);
  CObj.getAxisLeft().setStartAtZero(false);
  entry();
}

private void entry() {
  List<BarEntry> entry = new ArrayList<>();
  List<String> value = new ArrayList<>();
  value.add("" + (1 + 1));
  value.add("" + (2 + 1));
  value.add("" + (3 + 1));
  value.add("" + (4 + 1));
  value.add("" + (5 + 1));
  value.add("" + (6 + 1));
  value.add("" + (7 + 1));
  value.add("" + (8 + 1));
  value.add("" + (9 + 1));
  value.add("" + (10 + 1));

  entry.add(new BarEntry(1000f, 1));
  entry.add(new BarEntry(2000f, 2));
  entry.add(new BarEntry(3000f, 3));
  entry.add(new BarEntry(4000f, 4));
  entry.add(new BarEntry(5000f, 5));
  entry.add(new BarEntry(6000f, 6));
  entry.add(new BarEntry(7000f, 7));
  entry.add(new BarEntry(8000f, 8));
  entry.add(new BarEntry(9000f, 9));
  entry.add(new BarEntry(10000f, 10));

  BarDataSet data = new BarDataSet(entry, "データ表示");
  data.setColor(Color.BLUE);
  List<BarDataSet> dataset = new ArrayList<>();
  dataset.add(data);
  BarData data = new BarData(value, dataset);
  CObj.setData(data);
  CObj.invalidate();
}

実機で確認した結果

graph.png

縦軸、横軸の表示・感覚も細く設定できるようです。Gradleまわりも含めて、きちんと勉強しよう。。

22
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
25