我正在使用AChartEngine(我觉得它很酷!)来显示两个系列来比较它们的每日价值。不幸的是,有些问题我无法解决,即使我搜索了这个网站,我也找不到解决方案。如果有人能帮我一把,那就太好了。
如果查看屏幕截图,您会看到x轴有两个“标签轴”。一个是正确的显示日期,另一个是由整数组成,从0到8开始。我想删除这些整数。
其次,图表可以移动。因为我总是在显示有趣的数据部分,所以我没有必要这样做,我想禁用此功能。
这是我的配置代码:
public XYMultipleSeriesRenderer getBarChartRenderer() {
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(20);
renderer.setChartTitleTextSize(18);
renderer.setLabelsTextSize(18);
renderer.setLegendTextSize(18);
//renderer.setMargins(new int[]{20, 30, 15, 0});
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(Color.YELLOW);
renderer.addSeriesRenderer(r);
r = new SimpleSeriesRenderer();
r.setColor(Color.BLUE);
renderer.addSeriesRenderer(r);
return renderer;
}
private void setBarChartSettings(XYMultipleSeriesRenderer renderer, String sTitle, String sXAxisTitle, String sYAxisTitle, String[] aDates) {
renderer.setChartTitle(sTitle);
renderer.setXTitle(sXAxisTitle);
renderer.setYTitle(sYAxisTitle);
renderer.setXAxisMin(0);
renderer.setXAxisMax(aDates.length + 1);
renderer.setYAxisMin(0);
renderer.setYAxisMax(40);
renderer.setShowGridY(true);
renderer.setShowGridX(true);
renderer.setGridColor(Color.WHITE);
renderer.setXLabelsColor(Color.WHITE);
renderer.setYLabelsColor(0, Color.WHITE);
renderer.setXLabelsAlign(Paint.Align.CENTER);
renderer.setYLabelsAlign(Paint.Align.RIGHT);
for (int i = 0; i < aDates.length; i++) {
renderer.addXTextLabel(i + 1, aDates[i]);
}
//renderer.setXLabelsAngle(-30.0f);
renderer.setXLabelsAlign(Paint.Align.CENTER);
renderer.setXLabelsPadding(10);
}
谢谢!
答案 0 :(得分:2)
听起来你需要禁用默认的数字标签:
renderer.setXLabels(0);
您还需要禁用平移和缩放操作:
renderer.setPanEnabled(false, false);
renderer.setZoomEnabled(false, false);
答案 1 :(得分:0)
好的,这是我的解决方案:
renderer.setChartTitle(sTitle);
renderer.setXTitle(sXAxisTitle);
renderer.setYTitle(sYAxisTitle);
renderer.setXAxisMin(0);
renderer.setXAxisMax(aDates.length);
renderer.setYAxisMin(0);
renderer.setYAxisMax(40);
renderer.setXLabels(0);
renderer.setPanEnabled(false, false);
renderer.setZoomEnabled(false, false);
renderer.setShowGridY(true);
renderer.setShowGridX(true);
renderer.setGridColor(Color.WHITE);
renderer.setXLabelsColor(Color.WHITE);
renderer.setYLabelsColor(0, Color.WHITE);
renderer.setXLabelsAlign(Paint.Align.CENTER);
renderer.setYLabelsAlign(Paint.Align.RIGHT);
renderer.addXTextLabel(0, "");
for (int i = 0; i < aDates.length; i++) {
renderer.addXTextLabel(i + 1, aDates[i]);
}
renderer.setXLabelsAlign(Paint.Align.CENTER);
renderer.setXLabelsPadding(10);
renderer.setYLabelsPadding(10);
现在,图表按我希望的那样显示。