我有一个由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;
}
}
另外,如何调整为Axis Labels分配的字体大小和空间?
感谢帮助人员。
答案 0 :(得分:2)
您可以通过以下方式调整缩放行为:
mRenderer.setZoomEnabled(true, false);
对于标签尺寸,请使用:
mRenderer.setLabelsTextSize();
对于填充,请使用:
mRenderer.setXLabelsPadding();