Mohit Charadva
Mohit Charadva

Reputation: 2613

AChartEngine - setXLabelsPadding method not working

I want to show X Axis labels with the padding of 10px from the X Axis and with the angle of -30 degree. Below is my code but it is not working it shows labels at its default location exact below the axis, I want 10px space between axis and labels.

Code :

mRenderer.setXLabelsAlign(Align.CENTER);
mRenderer.setXLabelsPadding(10);
mRenderer.setXLabelsAngle(-30.0f);

Please help solving this issue.

Thanks.

Edited

I am using custom labels not generated by AChartengine, is that causes this issue ?

Code :

public void initChart() {
    mDataset = new XYMultipleSeriesDataset();
    mCurrentSeries = new TimeSeries("Dates");
    mDataset.addSeries(mCurrentSeries);
    mRenderer = new XYMultipleSeriesRenderer();
    mSeriesRenderer = new XYSeriesRenderer();
    mSeriesRenderer.setPointStyle(PointStyle.CIRCLE);
    mSeriesRenderer.setFillPoints(true);
    mSeriesRenderer.setColor(Color.WHITE);
    mRenderer.addSeriesRenderer(mSeriesRenderer);
}

public void setRenderingStyle() {
    mRenderer.setBackgroundColor(getResources().getColor(R.color.ilink_blue));
    mRenderer.setMarginsColor(getResources().getColor(R.color.ilink_blue));
    mRenderer.setShowGridY(true);
    mRenderer.setGridColor(Color.WHITE);
    mRenderer.setShowCustomTextGrid(true);
    mRenderer.setAntialiasing(true);
    mRenderer.setPanEnabled(true, false);
    mRenderer.setZoomEnabled(true, false);
    mRenderer.setZoomButtonsVisible(false);
    mRenderer.setXLabelsColor(Color.WHITE);
    mRenderer.setYLabelsColor(0, Color.WHITE);
    mRenderer.setXLabelsAlign(Align.CENTER);
    mRenderer.setXLabelsPadding(10);
    mRenderer.setXLabelsAngle(-30.0f);
    mRenderer.setYLabelsAlign(Align.RIGHT);
    mRenderer.setPointSize(3);
    mRenderer.setInScroll(true);
    mRenderer.setShowLegend(false);
    mRenderer.setYTitle(getResources().getString(R.string.graph_bodyfat));
    mRenderer.setMargins(new int[] {0, 50, 10, 10});
}

Screenshot

Graph Image

Upvotes: 2

Views: 1439

Answers (2)

Mohit Charadva
Mohit Charadva

Reputation: 2613

This issue occurs because while using custom labels we are using

mRenderer.setXLabels(0);

so when the drawXLabels method of XYChart.java called it gets length of labels 0 and does not go in side the loop that is the reason why it is not working.

I have attached the copy of fixed version.

By the way thanks for the help @Dan

Download link : "AChartEngine-fixed-1.2.0.jar"

Result :

Result

Upvotes: 1

Dan D.
Dan D.

Reputation: 32391

I have just tried it and it does work. Try it with bigger values and you will get the X axis labels padding as much as you need.

Upvotes: 0

Related Questions