Reputation: 162
Hello am using MPAndroiChart for my Android App
I stuck with a requirement where I have to draw a line chart(a single line) with different style. Some part of the line is straight and some part is dotted. Something like this
________...........__________________...______
Is it possible to do in MPAndroidChart?
Upvotes: 5
Views: 9353
Reputation: 67
Using multiple datasets is a litte bit annoying. This is an example with only a dotted part into a line but it means a lot of code (and you have to repeat entries in every series to make it a continous line), and if you need a line becoming dotted and not dotted some times it must be very difficult to solve:
ArrayList<Entry> dataValues2 = new ArrayList<Entry>();
ArrayList<Entry> dataValues3 = new ArrayList<Entry>();
ArrayList<Entry> dataValues4 = new ArrayList<Entry>();
dataValues2.add(new Entry(0,12));
dataValues2.add(new Entry(1,10));
dataValues2.add(new Entry(2,9));
dataValues2.add(new Entry(3,10));
dataValues2.add(new Entry(4,9));
dataValues3.add(new Entry(4,9));//Dotted lines
dataValues3.add(new Entry(5,8));
dataValues3.add(new Entry(6,7));
dataValues3.add(new Entry(7,6));
dataValues3.add(new Entry(8,5));
dataValues3.add(new Entry(9,4));
dataValues3.add(new Entry(10,3));
dataValues3.add(new Entry(11,5));
dataValues3.add(new Entry(12,7));
dataValues3.add(new Entry(13,8));
dataValues3.add(new Entry(14,10));
dataValues4.add(new Entry(14,10));
dataValues4.add(new Entry(15,12));
dataValues4.add(new Entry(16,11));
dataValues4.add(new Entry(17,13));
dataValues4.add(new Entry(18,11));
dataValues4.add(new Entry(19,14));
LineChart mpLinechart;
mpLinechart=findViewById(R.id.linechart);
LineDataSet lineDataSet2=new LineDataSet(dataValues2,"");
LineDataSet lineDataSet3=new LineDataSet(dataValues3,"");
LineDataSet lineDataSet4=new LineDataSet(dataValues4,"");
lineDataSet3.enableDashedLine(12,10,0);
lineDataSet2.setLineWidth(3f);
lineDataSet2.setColor(Color.BLUE);
lineDataSet3.setLineWidth(3f);
lineDataSet3.setColor(Color.BLUE);
lineDataSet4.setLineWidth(3f);
lineDataSet4.setColor(Color.BLUE);
ArrayList<ILineDataSet> dataSets=new ArrayList<>();
dataSets.add(lineDataSet2);
dataSets.add(lineDataSet3);
dataSets.add(lineDataSet4);
LineData data=new LineData(dataSets);
mpLinechart.setData(data);
mpLinechart.invalidate();
Upvotes: 0
Reputation: 51421
Yes, call lineDataSet.enableDashedLine(...)
Documentation: https://github.com/PhilJay/MPAndroidChart/wiki/DataSet-classes-in-detail
Upvotes: 11