2017-01-26 15 views
0

私のアプリケーションでは、円グラフにいくつかのデータを表示したいと思います。私はMPAndroidChartライブラリを使用していて、私は正しく表示されたすべての自分のデータを見栄えの良いチャートをプログラムするために管理したドキュメントに従っています。MPAndroidChart円グラフで別のデータセットを表示

今、グラフを改善したいと思いますが、何か問題があります。私のデータは1日を指しますが、所得と収入という2つのカテゴリがあります。今まで私はそれらを単一のPieDataSetとして扱いました(それらはラベルを持っているので、それらを区別するのはかなり簡単です)。ここでは、同じ円グラフでさまざまな色で表示するために、収入と収入を区別したいと思います。

私はthisリンク(折れ線グラフの一部)円グラフにそれを適応し、次の試してみましたが、Androidのメーカーは、私がPieDataオブジェクトのコンストラクタのパラメータとしてList<IPieDataSet>を使用することができないことを私に伝えます。コードは次のとおりです。

私は多くを検索しましたが、まだこの問題の答えが見つかりませんでした。

質問:

複数のデータセットと同じ円グラフのかどうかを表示することができますか?それが可能なら、どうすればいいのですか?

答えて

1

円グラフは、単一の360度円です。スライスは、特定のデータセットの合計の割合を表します。これは単一の文脈の中でのみ意味がありますIDataSet。したがって、BarChartおよびLineChartとは異なり、PieChartは複数のIDataSetをサポートしていません。

あなたが本当に望むのは、あなたの「収入」と「収入」に異なる色を使用することだと思います。これを行うには、リスト内の位置がPieEntryがチャートに追加された順番と一致する解決済みの色(カラーリソースではない)のList<Integer>を作成するだけです。

List<Integer> colors = new ArrayList<Integer>(); 
colors.add(ContextCompat.getColor(context, R.color.red)); 
colors.add(ContextCompat.getColor(context, R.color.blue)); 
colors.add(ContextCompat.getColor(context, R.color.red)); 
colors.add(ContextCompat.getColor(context, R.color.blue)); 
dataSet.setColors(colors); 

今すぐすべてのあなたの収入は赤であり、あなたの費用は青です:

entries.add(new PieEntry(15f, "entrate1")); //revenue1 
entries.add(new PieEntry(20f, "uscite1")); //expense1 
entries.add(new PieEntry(10f, "entrate2")); //revenue2 
entries.add(new PieEntry(50f, "uscite2")); //expense2 

あなただけのものと一致決議色のList<Integer>を作成します。説明するために

、我々はこれを持っているとしましょう。あなたは巧みで、手動で行うのではなく、PieEntryを色にマップする関数を書くことさえできます。

いずれの場合でも、this answer hereは、円グラフスライスの色を設定するのに適しています。

+1

これは私にとって完璧に機能します。ありがとうございました! – Caterina

関連する問題