Skip to content

Commit e6915e2

Browse files
committed
Made these bar demos reuse the dataset and keep styling
1 parent 58b640d commit e6915e2

7 files changed

Lines changed: 143 additions & 75 deletions

File tree

MPChartExample/src/com/xxmassdeveloper/mpchartexample/AnotherBarActivity.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -186,17 +186,26 @@ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
186186
xVals.add((int) yVals1.get(i).getVal() + "");
187187
}
188188

189-
BarDataSet set1 = new BarDataSet(yVals1, "Data Set");
190-
set1.setColors(ColorTemplate.VORDIPLOM_COLORS);
191-
set1.setDrawValues(false);
189+
BarDataSet set1;
192190

193-
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
194-
dataSets.add(set1);
191+
if (mChart.getData() != null &&
192+
mChart.getData().getDataSetCount() > 0) {
193+
set1 = (BarDataSet)mChart.getData().getDataSetByIndex(0);
194+
set1.setYVals(yVals1);
195+
mChart.notifyDataSetChanged();
196+
} else {
197+
set1 = new BarDataSet(yVals1, "Data Set");
198+
set1.setColors(ColorTemplate.VORDIPLOM_COLORS);
199+
set1.setDrawValues(false);
195200

196-
BarData data = new BarData(xVals, dataSets);
201+
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
202+
dataSets.add(set1);
197203

198-
mChart.setData(data);
199-
mChart.invalidate();
204+
BarData data = new BarData(xVals, dataSets);
205+
206+
mChart.setData(data);
207+
mChart.invalidate();
208+
}
200209
}
201210

202211
@Override

MPChartExample/src/com/xxmassdeveloper/mpchartexample/BarChartActivity.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -245,17 +245,26 @@ private void setData(int count, float range) {
245245
yVals1.add(new BarEntry(val, i));
246246
}
247247

248-
BarDataSet set1 = new BarDataSet(yVals1, "DataSet");
249-
set1.setBarSpacePercent(35f);
248+
BarDataSet set1;
250249

251-
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
252-
dataSets.add(set1);
250+
if (mChart.getData() != null &&
251+
mChart.getData().getDataSetCount() > 0) {
252+
set1 = (BarDataSet)mChart.getData().getDataSetByIndex(0);
253+
set1.setYVals(yVals1);
254+
mChart.notifyDataSetChanged();
255+
} else {
256+
set1 = new BarDataSet(yVals1, "DataSet");
257+
set1.setBarSpacePercent(35f);
253258

254-
BarData data = new BarData(xVals, dataSets);
255-
data.setValueTextSize(10f);
256-
data.setValueTypeface(mTf);
259+
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
260+
dataSets.add(set1);
257261

258-
mChart.setData(data);
262+
BarData data = new BarData(xVals, dataSets);
263+
data.setValueTextSize(10f);
264+
data.setValueTypeface(mTf);
265+
266+
mChart.setData(data);
267+
}
259268
}
260269

261270
@SuppressLint("NewApi")

MPChartExample/src/com/xxmassdeveloper/mpchartexample/BarChartActivityMultiDataset.java

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -211,30 +211,43 @@ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
211211
yVals3.add(new BarEntry(val, i));
212212
}
213213

214-
// create 3 datasets with different types
215-
BarDataSet set1 = new BarDataSet(yVals1, "Company A");
216-
// set1.setColors(ColorTemplate.createColors(getApplicationContext(),
217-
// ColorTemplate.FRESH_COLORS));
218-
set1.setColor(Color.rgb(104, 241, 175));
219-
BarDataSet set2 = new BarDataSet(yVals2, "Company B");
220-
set2.setColor(Color.rgb(164, 228, 251));
221-
BarDataSet set3 = new BarDataSet(yVals3, "Company C");
222-
set3.setColor(Color.rgb(242, 247, 158));
223-
224-
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
225-
dataSets.add(set1);
226-
dataSets.add(set2);
227-
dataSets.add(set3);
228-
229-
BarData data = new BarData(xVals, dataSets);
214+
BarDataSet set1, set2, set3;
215+
216+
if (mChart.getData() != null &&
217+
mChart.getData().getDataSetCount() > 0) {
218+
set1 = (BarDataSet)mChart.getData().getDataSetByIndex(0);
219+
set2 = (BarDataSet)mChart.getData().getDataSetByIndex(1);
220+
set3 = (BarDataSet)mChart.getData().getDataSetByIndex(2);
221+
set1.setYVals(yVals1);
222+
set2.setYVals(yVals2);
223+
set3.setYVals(yVals3);
224+
mChart.notifyDataSetChanged();
225+
} else {
226+
// create 3 datasets with different types
227+
set1 = new BarDataSet(yVals1, "Company A");
228+
// set1.setColors(ColorTemplate.createColors(getApplicationContext(),
229+
// ColorTemplate.FRESH_COLORS));
230+
set1.setColor(Color.rgb(104, 241, 175));
231+
set2 = new BarDataSet(yVals2, "Company B");
232+
set2.setColor(Color.rgb(164, 228, 251));
233+
set3 = new BarDataSet(yVals3, "Company C");
234+
set3.setColor(Color.rgb(242, 247, 158));
235+
236+
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
237+
dataSets.add(set1);
238+
dataSets.add(set2);
239+
dataSets.add(set3);
240+
241+
BarData data = new BarData(xVals, dataSets);
230242
// data.setValueFormatter(new LargeValueFormatter());
231-
232-
// add space between the dataset groups in percent of bar-width
233-
data.setGroupSpace(80f);
234-
data.setValueTypeface(tf);
235243

236-
mChart.setData(data);
237-
mChart.invalidate();
244+
// add space between the dataset groups in percent of bar-width
245+
data.setGroupSpace(80f);
246+
data.setValueTypeface(tf);
247+
248+
mChart.setData(data);
249+
mChart.invalidate();
250+
}
238251
}
239252

240253
@Override

MPChartExample/src/com/xxmassdeveloper/mpchartexample/BarChartActivitySinus.java

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -223,16 +223,25 @@ private void setData(int count) {
223223
xVals.add(i+"");
224224
entries.add(mSinusData.get(i));
225225
}
226-
227-
BarDataSet set = new BarDataSet(entries, "Sinus Function");
228-
set.setBarSpacePercent(40f);
229-
set.setColor(Color.rgb(240, 120, 124));
230226

231-
BarData data = new BarData(xVals, set);
232-
data.setValueTextSize(10f);
233-
data.setValueTypeface(mTf);
234-
data.setDrawValues(false);
227+
BarDataSet set;
228+
229+
if (mChart.getData() != null &&
230+
mChart.getData().getDataSetCount() > 0) {
231+
set = (BarDataSet)mChart.getData().getDataSetByIndex(0);
232+
set.setYVals(entries);
233+
mChart.notifyDataSetChanged();
234+
} else {
235+
set = new BarDataSet(entries, "Sinus Function");
236+
set.setBarSpacePercent(40f);
237+
set.setColor(Color.rgb(240, 120, 124));
235238

236-
mChart.setData(data);
239+
BarData data = new BarData(xVals, set);
240+
data.setValueTextSize(10f);
241+
data.setValueTypeface(mTf);
242+
data.setDrawValues(false);
243+
244+
mChart.setData(data);
245+
}
237246
}
238247
}

MPChartExample/src/com/xxmassdeveloper/mpchartexample/BarChartPositiveNegative.java

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -108,18 +108,27 @@ private void setData(List<Data> dataList) {
108108
colors.add(green);
109109
}
110110

111-
BarDataSet set = new BarDataSet(values, "Values");
112-
set.setBarSpacePercent(40f);
113-
set.setColors(colors);
114-
set.setValueTextColors(colors);
115-
116-
BarData data = new BarData(dates, set);
117-
data.setValueTextSize(13f);
118-
data.setValueTypeface(mTf);
119-
data.setValueFormatter(new ValueFormatter());
120-
121-
mChart.setData(data);
122-
mChart.invalidate();
111+
BarDataSet set;
112+
113+
if (mChart.getData() != null &&
114+
mChart.getData().getDataSetCount() > 0) {
115+
set = (BarDataSet)mChart.getData().getDataSetByIndex(0);
116+
set.setYVals(values);
117+
mChart.notifyDataSetChanged();
118+
} else {
119+
set = new BarDataSet(values, "Values");
120+
set.setBarSpacePercent(40f);
121+
set.setColors(colors);
122+
set.setValueTextColors(colors);
123+
124+
BarData data = new BarData(dates, set);
125+
data.setValueTextSize(13f);
126+
data.setValueTypeface(mTf);
127+
data.setValueFormatter(new ValueFormatter());
128+
129+
mChart.setData(data);
130+
mChart.invalidate();
131+
}
123132
}
124133

125134
/**

MPChartExample/src/com/xxmassdeveloper/mpchartexample/HorizontalBarChartActivity.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -242,16 +242,25 @@ private void setData(int count, float range) {
242242
yVals1.add(new BarEntry((float) (Math.random() * range), i));
243243
}
244244

245-
BarDataSet set1 = new BarDataSet(yVals1, "DataSet 1");
245+
BarDataSet set1;
246246

247-
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
248-
dataSets.add(set1);
247+
if (mChart.getData() != null &&
248+
mChart.getData().getDataSetCount() > 0) {
249+
set1 = (BarDataSet)mChart.getData().getDataSetByIndex(0);
250+
set1.setYVals(yVals1);
251+
mChart.notifyDataSetChanged();
252+
} else {
253+
set1 = new BarDataSet(yVals1, "DataSet 1");
249254

250-
BarData data = new BarData(xVals, dataSets);
251-
data.setValueTextSize(10f);
252-
data.setValueTypeface(tf);
255+
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
256+
dataSets.add(set1);
253257

254-
mChart.setData(data);
258+
BarData data = new BarData(xVals, dataSets);
259+
data.setValueTextSize(10f);
260+
data.setValueTypeface(tf);
261+
262+
mChart.setData(data);
263+
}
255264
}
256265

257266
@SuppressLint("NewApi")

MPChartExample/src/com/xxmassdeveloper/mpchartexample/StackedBarActivity.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.github.mikephil.charting.data.BarDataSet;
2121
import com.github.mikephil.charting.data.BarEntry;
2222
import com.github.mikephil.charting.data.Entry;
23+
import com.github.mikephil.charting.data.LineDataSet;
2324
import com.github.mikephil.charting.data.filter.Approximator;
2425
import com.github.mikephil.charting.data.filter.Approximator.ApproximatorType;
2526
import com.github.mikephil.charting.highlight.Highlight;
@@ -201,18 +202,27 @@ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
201202
yVals1.add(new BarEntry(new float[] { val1, val2, val3 }, i));
202203
}
203204

204-
BarDataSet set1 = new BarDataSet(yVals1, "Statistics Vienna 2014");
205-
set1.setColors(getColors());
206-
set1.setStackLabels(new String[] { "Births", "Divorces", "Marriages" });
205+
BarDataSet set1;
207206

208-
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
209-
dataSets.add(set1);
207+
if (mChart.getData() != null &&
208+
mChart.getData().getDataSetCount() > 0) {
209+
set1 = (BarDataSet)mChart.getData().getDataSetByIndex(0);
210+
set1.setYVals(yVals1);
211+
mChart.notifyDataSetChanged();
212+
} else {
213+
set1 = new BarDataSet(yVals1, "Statistics Vienna 2014");
214+
set1.setColors(getColors());
215+
set1.setStackLabels(new String[]{"Births", "Divorces", "Marriages"});
216+
217+
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
218+
dataSets.add(set1);
210219

211-
BarData data = new BarData(xVals, dataSets);
212-
data.setValueFormatter(new MyValueFormatter());
220+
BarData data = new BarData(xVals, dataSets);
221+
data.setValueFormatter(new MyValueFormatter());
213222

214-
mChart.setData(data);
215-
mChart.invalidate();
223+
mChart.setData(data);
224+
mChart.invalidate();
225+
}
216226
}
217227

218228
@Override

0 commit comments

Comments
 (0)