绘制具有不规则X轴值的图形

时间:2014-06-04 13:16:03

标签: android achartengine

我正在使用achartengine来获取我的应用程序通过套接字连接不断接收的数据。该点一次绘制一个点。 这里唯一的问题是我的X轴数据不能保证在一个序列中(升序/降序)。

例如:350,352,356,360,1,5,10,12,18,.....,349。

当我将此数据输入现有代码时,引擎会重新排列X轴。它被自动排列为1,5,10,.....,360。因此该图不能准确描述我的数据到达的顺序。

有没有办法可以保留X轴的顺序。 理想情况下,图中的X轴标记应与它到达的顺序相同。

1 个答案:

答案 0 :(得分:1)

我不得不做类似的事情。您需要做的是禁用自动x轴编号并为其指定自己的标签:

private void setXLabels(XYMultipleSeriesRenderer renderer, String[] labels, int[] values) {
    renderer.setXLabels(0);
    renderer.setXLabelsAlign(Align.RIGHT);
    for(int i = 0; i < labels.size(); i++){
            String label = labels[i];
            int x_position = values[i].
        renderer.addXTextLabel(x_position, label);
    }

}

这会将x轴的标签设置为您想要的任何值。诀窍是你需要将你的数据x doubles []映射为一个有效的轴,即它从一个小数字到一个大数字。 然后,您可以绘制格式化的x和y数据集。最后,更改x轴的标签,使其看起来像你想要的那样。

说你的数据加倍[]是:

x = [2,3,0,4,5]
y = [1,2,3,2,1]

然后将其更改为:

 x = [1,2,3,4,5]
 y = [1,2,3,2,1](can stay the same)
 labels = ["2","3","0","4","5"]

绘制已更改的x和y图表,然后只需替换x标签