实际上,在我的应用中,我使用achartEngine
创建了一个图表。在这些在x轴上最初我显示的值从1 - 31.现在,而不是显示这是可能显示值像1-03-2012 2-03-2012 3-03-2012 ....等等到当月的最后一天,当它到达当月的最后一天,即31-03-2012之后的值显示应该是
1-04-2012 2-04-2012 ......等等。我在显示1 2 3 4 5 ...之类的值时使用的代码如下所示。任何人都可以帮我解决这个问题。
图表代码
renderer = new XYMultipleSeriesRenderer(2);
int length = colors.length;
for (int i = 0; i < length; i++)
{
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(colors[i]);
r.setPointStyle(styles[i]);
renderer.addSeriesRenderer(r);
}
int rendererLength = renderer.getSeriesRendererCount();
for (int i = 0; i < rendererLength; i++)
{
((XYSeriesRenderer) renderer.getSeriesRendererAt(i)).setFillPoints(true);
}
renderer.setAxisTitleTextSize(12);
renderer.setChartTitleTextSize(12);
renderer.setLabelsTextSize(10);
renderer.setLegendTextSize(12);
renderer.setPointSize(5f);
renderer.setApplyBackgroundColor(true);
renderer.setBackgroundColor(Color.parseColor("#F5F5F5"));
renderer.setMarginsColor(Color.parseColor("#F5F5F5"));
renderer.setChartTitle("Weight / Temperature");
renderer.setXLabels(20);
renderer.setXTitle(sdFormatter.format(currentDate));
renderer.setXAxisMin(1);
renderer.setXAxisMax(nMaxDay);
renderer.setXLabelsAlign(Align.CENTER);
renderer.setYLabels(10);
renderer.setYTitle("Weight", 0);
renderer.setYTitle("Temperature", 1);
renderer.setYAxisMin(10, 0);
renderer.setYAxisMax(90, 0);
renderer.setYAxisMin(10, 1);
renderer.setYAxisMax(90, 1);
renderer.setYAxisAlign(Align.LEFT, 0);
renderer.setYAxisAlign(Align.RIGHT, 1);
renderer.setYLabelsAlign(Align.LEFT, 0);
renderer.setYLabelsAlign(Align.RIGHT, 1);
renderer.setAxesColor(Color.LTGRAY);
renderer.setLabelsColor(Color.parseColor("#5f5f5f"));
renderer.setShowGrid(true);
renderer.setGridColor(Color.GRAY);
截图
答案 0 :(得分:13)
使用Demo中的AverageTemperatureChart类。
setChartSettings(renderer, "Average temperature", "Month", "Temperature", 0.5, 5.5, 0, 4,
Color.LTGRAY, Color.LTGRAY);
然后像这样改变并检查更改
for (int i = 0; i < titles.length; i++)
{
x.add(new double[] { 1, 2, 3, 4 });
}
仅为演示添加四个
通过renderer.addTextLabel();
添加标签例如:
String[] date={"1-3-2012","1-4-2012","1-5-2012","1-6-2012"};
for (int i = 0; i < date.length; i++)
{
renderer.addTextLabel(i+1, date[i]);
}
renderer.setXLabelsAlign(Align.CENTER);
renderer.setXLabels(0);
答案 1 :(得分:4)
除了Abhi的回答,如果你想为X Labels添加网格,那么添加下一行:
renderer.setShowCustomTextGrid(true);