AChartEngine Custom Y-Axis shortcut labels and chart values ​​as String?

I created a chart that showed questions (X) / time (Y) during the test. You can see the first question here for details.

But now I need to display the chart marker values ​​correctly, the milliseconds value is currently displayed, but I need to show the custom value hh: mm: ss, as was done with the Y-Axis shortcut, and somehow adjust the Y-axis Area, to display full values ​​correctly. Below is a screenshot of what the chart looks like now.

Chart Questions / Etsimated Answered Time

[EDIT]

With Dan's help, I almost got what I want. This is just a small problem. Check out the screenshot below where the chart values ​​are now displayed. I upgraded to 1.1.0 from the AChartEngine repository. addNotations refers to TimeSeries objects. I will copy my code below, adding data to my TimeSeries instance.

myQuestionsTimeSeries.add(i, DateTimeHelper.getMillisFromTime(answer.getEstimatedAnswerTime())); xyMultipleSeriesRenderer.addYTextLabel(DateTimeHelper.getMillisFromTime(answer.getEstimatedAnswerTime()), String.valueOf(answer.getEstimatedAnswerTime())); myQuestionsTimeSeries.addAnnotation(String.valueOf(answer.getEstimatedAnswerTime()), i, DateTimeHelper.getMillisFromTime(answer.getEstimatedAnswerTime())); 

The result of the code for this diagram:

My chart at the moment

[EDIT]

This is basically the whole class:

 private void initQuestionsTimeChart() { xyMultipleSeriesDataset = new XYMultipleSeriesDataset(); xyMultipleSeriesRenderer = new XYMultipleSeriesRenderer(); questionsTimeChart = ChartFactory.getLineChartView(getActivity(), xyMultipleSeriesDataset, xyMultipleSeriesRenderer); rootView.addView(questionsTimeChart); initSeriesData(); } private void initSeriesData() { createMyQuestionsSeries(); addSeriesAndRenderer(myQuestionsTimeSeries, myQuestionsRenderer); xyMultipleSeriesRenderer.setYTitle("Questions Time"); xyMultipleSeriesRenderer.setXTitle("Questions Number"); xyMultipleSeriesRenderer.setMarginsColor(Color.argb(0, 255, 255, 255)); xyMultipleSeriesRenderer.setAxesColor(Color.BLACK); xyMultipleSeriesRenderer.setLabelsColor(Color.BLACK); xyMultipleSeriesRenderer.setXLabelsColor(Color.BLACK); xyMultipleSeriesRenderer.setYLabelsColor(0, Color.BLACK); xyMultipleSeriesRenderer.setAxisTitleTextSize(16); xyMultipleSeriesRenderer.setLabelsTextSize(15); xyMultipleSeriesRenderer.setYLabelsAlign(Paint.Align.RIGHT); xyMultipleSeriesRenderer.setSelectableBuffer(20); xyMultipleSeriesRenderer.setYLabels(0); xyMultipleSeriesRenderer.setMargins(new int[]{ 80, 80, 80, 80 }); } private void addSeriesAndRenderer(XYSeries series, XYSeriesRenderer renderer) { xyMultipleSeriesDataset.addSeries(series); xyMultipleSeriesRenderer.addSeriesRenderer(renderer); } private void createMyQuestionsSeries() { myQuestionsTimeSeries = new TimeSeries("My Questions/Time"); myQuestionsRenderer = new XYSeriesRenderer(); myQuestionsRenderer.setColor(Color.BLUE); myQuestionsRenderer.setLineWidth(3f); myQuestionsRenderer.setPointStyle(PointStyle.CIRCLE); myQuestionsRenderer.setFillPoints(true); myQuestionsRenderer.setChartValuesSpacing(10f); } private void fillData() { int i = 0; for (Answer answer : getAnswers()) { i++; if (answer.getEstimatedAnswerTime() != null) { myQuestionsTimeSeries.add(i, DateTimeHelper.getMillisFromTime(answer.getEstimatedAnswerTime())); xyMultipleSeriesRenderer.addYTextLabel(DateTimeHelper.getMillisFromTime(answer.getEstimatedAnswerTime()), String.valueOf(answer.getEstimatedAnswerTime())); myQuestionsTimeSeries.addAnnotation(String.valueOf(answer.getEstimatedAnswerTime()), i, DateTimeHelper.getMillisFromTime(answer.getEstimatedAnswerTime())); } } } 

Thank you in advance!

+4
source share
1 answer

First of all, hide the chart values:

 renderer.setDisplayChartValues(false); 

Then, for each chart value, add an annotation:

 renderer.addAnnotation("text", x, y); 

To make the Y-axis labels visible, just bind them to LEFT:

 renderer.setYLabelsAlign(Align.LEFT); 

Or you can increase the fields:

 renderer.setMargins(margins); 

Make sure you use the latest ACE build here .

+7
source

All Articles