Sandeep Tengale
Sandeep Tengale

Reputation: 162

How to set diffent style to single line graph in MPAndroidChart?

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

Answers (2)

jlsogorb
jlsogorb

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();

Graph with dotted lines

Upvotes: 0

Philipp Jahoda
Philipp Jahoda

Reputation: 51421

Yes, call lineDataSet.enableDashedLine(...) Documentation: https://github.com/PhilJay/MPAndroidChart/wiki/DataSet-classes-in-detail

Upvotes: 11

Related Questions