2012-03-28 116 views
5

实际上,在我的应用程序中,我使用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 ...下面给出...任何人都可以帮助我解决这个问题。对于图如何在achartengine中设置x轴标签的值

代码

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); 

截图拍摄 enter image description here

+0

您在AchartEngineDemo – Abhi 2012-03-28 10:02:49

+0

XYMultipleSeriesRenderer使用哪一个类(对象这个包含图形属性喜欢颜色) – AndroidDev 2012-03-28 10:03:55

+0

哪个.java文件? – Abhi 2012-03-28 10:05:19

回答

13

使用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); 
+0

没有CustomLabelFormatter或类似的东西,可以让你随时生成标签吗?这个图书馆是一个很大的PITA ... – hotzen 2014-09-21 21:13:49

4

除了ABHI的答案,如果你想添加网格X标签再加入下一行:

renderer.setShowCustomTextGrid(true);