1. ホーム
  2. Android

MPAndroidChartのPieChartで、セクターが表示されず、中央のテキストのみが表示される。

2022-02-18 10:24:01
<パス

  3、4日かけて原因を探って、ようやく非常に知恵遅れのミスであることが判明しました。
  下記の通りです。

  ご覧のように、被験者のセクターが正しく表示されているものと、そうでないものがあります。
  出力されたデータです。

// Initialize the pieChart based on the data
ArrayList
 data = list.get(i).getData();
ArrayList
 name = new ArrayList<>(Arrays.asList("55-60", "50-55", "45-50","40-45", "under 40")) ;
List
 pieEntries = new ArrayList<>();
ArrayList
 rate = new ArrayList<>();

for(Integer x : data) {
    System.out.println(x);
}

for(int m = 0; m < 5; m++) {
    System.out.println("current = " + data.get(m) / (data.get(0) + data.get(1) + data.get(2) + data.get(3) + data.get(4)) * 100);
    DecimalFormat df = new DecimalFormat("0.00%");
    String decimal = df.format(data.get(m) / (data.get(0) + data.get(1) + data.get(2) + data.get(3) + data.get(4)));
    PieEntry pieEntry = new PieEntry(data.get(m) / (data.get(0) + data.get(1) + data.get(2) + data.get(3) + data.get(4)) * 100, name.get(m));
    pieEntries.add(pieEntry);
    rate.add(decimal);
}


出力では、各計算でセクタースケールが0であることがわかるので、表示されない。

  解決方法

PieEntry pieEntry = new PieEntry((float)data.get(m) / (data.get(0) + data.get(1) + data.get(2) + data.get(3) + data.get(4)) * 100, name.get(m));