I am using the MPAndroidChart to make a graph of the sun movements and marking different points during the day. At this moment it looks like this: 
When I change it to dataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER);
It doesnt make it look curved just weird: 
A really small change at the top. And when I do dataSet.setMode(LineDataSet.Mode.HORIZONTAL_BEZIER);
It also has this weird loopy effect.
What am I doing wrong, are the points on my graph wrong?
I would like to get this type of effect:

Please help, thanks
EDIT
Here is the code I used
public class TestingZone extends Activity {
DocumentView documentView;
TextView textView;
ComplexZmanimCalendar czc;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.testingzone);
    czc = DataVariables.getInstance().getCzc();
//        czc.getCalendar().set(2017, Calendar.JUNE, 21);
        czc.getCalendar().set(2017, Calendar.DECEMBER, 21);
    float alosX = getXPosition(czc.getAlos16Point1Degrees());
    float alosY = getYPosition(czc.getAlos16Point1Degrees());
    float zmanTallisAndTefillinX = getXPosition(czc.getMisheyakir10Point2Degrees());
    float zmanTallisAndTefillinY = getYPosition(czc.getMisheyakir10Point2Degrees());
    float netzHaChamaX = getXPosition(czc.getSunrise());
    float netzHaChamaY = getYPosition(czc.getSunrise());
    float sofZmanShemahMagenAvrahamX = getXPosition(czc.getSofZmanShmaMGA16Point1Degrees());
    float sofZmanShemahMagenAvrahamY = getYPosition(czc.getSofZmanShmaMGA16Point1Degrees());
    float sofZmanShemahGraX = getXPosition(czc.getSofZmanShmaGRA());
    float sofZmanShemahGraY = getYPosition(czc.getSofZmanShmaGRA());
    float sofZmanTefillaX = getXPosition(czc.getSofZmanTfilaGRA());
    float sofZmanTefillaY = getYPosition(czc.getSofZmanTfilaGRA());
    float chatzosX = getXPosition(czc.getChatzos());
    float chatzosY = getYPosition(czc.getChatzos());
    float minchaGedolaX = getXPosition(czc.getMinchaGedola());
    float minchaGedolaY = getYPosition(czc.getMinchaGedola());
    float plagHaMinchaX = getXPosition(czc.getPlagHamincha());
    float plagHaMinchaY = getYPosition(czc.getPlagHamincha());
    float shkiahX = getXPosition(czc.getSunset());
    float shkiahY = getYPosition(czc.getSunset());
    float tzesHakochavimX = getXPosition(czc.getTzais());
    float tzesHakochavimY = getYPosition(czc.getTzais());
    LineChart chart = (LineChart) findViewById(R.id.chart);
    List<Entry> entries = new ArrayList<Entry>();
    entries.add(new Entry(alosX, alosY));
    entries.add(new Entry(zmanTallisAndTefillinX, zmanTallisAndTefillinY));
    entries.add(new Entry(netzHaChamaX, netzHaChamaY));
    entries.add(new Entry(sofZmanShemahMagenAvrahamX, sofZmanShemahMagenAvrahamY));
    entries.add(new Entry(sofZmanShemahGraX, sofZmanShemahGraY));
    entries.add(new Entry(sofZmanTefillaX, sofZmanTefillaY));
    entries.add(new Entry(chatzosX, chatzosY));
    entries.add(new Entry(minchaGedolaX, minchaGedolaY));
    entries.add(new Entry(plagHaMinchaX, plagHaMinchaY));
    entries.add(new Entry(shkiahX, shkiahY));
    entries.add(new Entry(tzesHakochavimX, tzesHakochavimY));
    Log.d("alos", "` "+ " X: " +alosX + " Y: " + alosY);
    Log.d("zmanTallisAndTefillin", "` "+ " X: " +zmanTallisAndTefillinX + " Y: " + zmanTallisAndTefillinY);
    Log.d("netzHaChama", "` "+ " X: " +netzHaChamaX + " Y: " + netzHaChamaY);
    Log.d("sofZmanShemahMagenAvrah", "` "+ " X: " +sofZmanShemahMagenAvrahamX + " Y: " + sofZmanShemahMagenAvrahamY);
    Log.d("sofZmanShemahGra", "` "+ " X: " +sofZmanShemahGraX + " Y: " + sofZmanShemahGraY);
    Log.d("sofZmanTefilla", "` "+ " X: " +sofZmanTefillaX + " Y: " + sofZmanTefillaY);
    Log.d("chatzos", "` "+ " X: " +chatzosX + " Y: " + chatzosY);
    Log.d("minchaGedola", "` "+ " X: " +minchaGedolaX + " Y: " + minchaGedolaY);
    Log.d("plagHaMincha", "` "+ " X: " +plagHaMinchaX + " Y: " + plagHaMinchaY);
    Log.d("shkiah", "` "+ " X: " +shkiahX + " Y: " + shkiahY);
    Log.d("tzesHakochavim", "` "+ " X: " +tzesHakochavimX + " Y: " + tzesHakochavimY);
    LineDataSet dataSet = new LineDataSet(entries, "Label");
    dataSet.setColor(Color.BLUE);
    dataSet.setCircleColor(Color.BLACK);
    dataSet.setCircleRadius(10f);
    dataSet.setLineWidth(5f);
    dataSet.setDrawValues(false);
    dataSet.setMode(LineDataSet.Mode.HORIZONTAL_BEZIER);
    dataSet.setCubicIntensity(.2f);
    LineData lineData = new LineData(dataSet);
    chart.setData(lineData);
//        chart.getXAxis().setDrawGridLines(false);
//        chart.getXAxis().setEnabled(false);
//        chart.getAxisLeft().setDrawGridLines(false);
//        chart.getAxisLeft( ).setEnabled(false);
//        chart.getAxisRight().setDrawGridLines(false);
//        chart.getAxisRight().setEnabled(false);
    chart.setDragEnabled(false);
    chart.setScaleEnabled(false);
    chart.setScaleXEnabled(false);
    chart.setScaleYEnabled(false);
    chart.setPinchZoom(false);
    chart.setDoubleTapToZoomEnabled(false);
    chart.setDragDecelerationEnabled(false);
    chart.getAxisLeft().setInverted(true);
//        chart.setBackgroundColor(Color.TRANSPARENT);
//        chart.getAxisLeft().setDrawLabels(false);
//        chart.getAxisRight().setDrawLabels(false);
//        chart.getXAxis().setDrawLabels(false);
//        chart.getLegend().setEnabled(false);
//        chart.getDescription().setEnabled(false);
    chart.invalidate(); // refresh
}
public float getTime(Date dateTime) {
    float hours = dateTime.getHours();
    float minutes = dateTime.getMinutes() / 60.0f;
    float time = hours + minutes;
    return time;
}
public float getXPosition(Date dateTime) {
    float time = getTime(dateTime) + 0.0f;
    float chatzosTime = getTime(czc.getChatzos()) + 0.0f;
    float xPosition = 0.0f;
    float percentageX = 0.0f;
    Log.d("X hours: ", "" + time);
    Log.d("X Chatzos", "" + chatzosTime);
//        if (time <= chatzosTime) {
//            Log.d("Before", "Chatzos");
//            percentageX = time / chatzosTime + 0.0f;
//            xPosition = percentageX * (lineImage.getWidth()/2) + 0.0f;
//        }else{
//            Log.d("After", "Chatzos");
//            percentageX = time / 24.0f - chatzosTime;
//            xPosition = (percentageX * (lineImage.getWidth()/2.0f)) + (lineImage.getWidth()/2);
//
//        }
    percentageX = time / 24f + 0.0f;
    xPosition = percentageX * 1000 + 0.0f;
    xPosition = (int) xPosition;
    Log.d("X Percentage", "" + percentageX);
    Log.d("X Position", "" + xPosition);
    return xPosition;
}
public float getYPosition(Date dateTime) {
    float time = getTime(dateTime);
    float chatzosTime = getTime(czc.getChatzos());
    float differeceInTime = chatzosTime - time; //reverse order from 0-12 (top down) if >1pm
    Log.d("Y hours: ", "" + time);
    Log.d("Y Chatzos", "" + chatzosTime);
    if (time >= chatzosTime) {
        time %= chatzosTime;
        differeceInTime = time + 0.0f;
    }
    float percentageY = differeceInTime / 12 + 0.0f;
    float yPosition = percentageY  * 1000 + 0.0f;
    yPosition = (int) yPosition;
    return yPosition;
}
