У меня есть горизонтальный график, созданный AChartEngine. Однако у меня проблема.AChartEngine - Заблокировать ось при масштабировании
Когда приложение запускается впервые, то по оси Y Минимальное значение начинается с 0, так что все бары открыты, как показано на этой фотографии:
Однако, когда пользователь нажимает кнопку уменьшения масштаба , весь граф не отъезжает, и мои бары плавают, как видно на этой фотографии:
Как видно, ось X движется, а начало координат (0,0) больше не в исходном положении ,
Так что мой вопрос: Можно ли заблокировать ось таким образом, чтобы при уменьшении масштаба полосы по-прежнему выравнивались по оси Y?
Вот мой код:
public class BarGraph {
public Intent getIntent(Context context) {
int y[] = { 25, 10, 15, 20 };
CategorySeries series = new CategorySeries("Bar1");
for (int i = 0; i < y.length; i++) {
series.add("Bar" + (i + 1), y[i]);
}
// collection of series under one object, there could any number of series
XYMultipleSeriesDataset dataSet = new XYMultipleSeriesDataset();
dataSet.addSeries(series.toXYSeries());
// customization of the chart
XYSeriesRenderer renderer = new XYSeriesRenderer(); // one renderer for
// one series
renderer.setColor(Color.RED);
renderer.setDisplayChartValues(true);
renderer.setChartValuesSpacing((float) 5.5d);
renderer.setLineWidth((float) 10.5d);
//collection of multiple vales for one renderer or series
XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
mRenderer.addSeriesRenderer(renderer);
mRenderer.setChartTitle("Demo Graph");
// mRenderer.setXTitle("xValues");
mRenderer.setYTitle("Rupee");
mRenderer.setZoomButtonsVisible(true);
mRenderer.setShowLegend(true);
mRenderer.setShowGridX(true); // this will show the grid in graph
mRenderer.setShowGridY(true);
// mRenderer.setAntialiasing(true);
mRenderer.setBarSpacing(.5); // adding spacing between the line or
// stacks
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.BLACK);
mRenderer.setXAxisMin(0);
mRenderer.setYAxisMin(0);
mRenderer.setXAxisMax(5);
mRenderer.setYAxisMax(50);
//
mRenderer.setXLabels(0);
mRenderer.addXTextLabel(1, "Income");
mRenderer.addXTextLabel(2, "Saving");
mRenderer.addXTextLabel(3, "Expenditure");
mRenderer.addXTextLabel(4, "NetIncome");
mRenderer.setPanEnabled(true, false); // will fix the chart position
mRenderer.setOrientation(Orientation.VERTICAL);
Intent intent = ChartFactory.getBarChartIntent(context, dataSet,
mRenderer, Type.DEFAULT);
return intent;
}
}
Кроме того, как настроить размер шрифта и пространство, выделенное для меток оси?
Спасибо за помощь, ребята.
Он работал. Благодарю. У меня есть продолжение, как вы удаляете числа в X-Axis? Я только что заметил это сейчас, и цифры (0-5) находятся под ярлыками бара. – Razgriz
mRenderer.setXLabels (0); –