我正在使用achartengine来获取我的应用程序通过套接字连接不断接收的数据。该点一次绘制一个点。 这里唯一的问题是我的X轴数据不能保证在一个序列中(升序/降序)。
例如:350,352,356,360,1,5,10,12,18,.....,349。
当我将此数据输入现有代码时,引擎会重新排列X轴。它被自动排列为1,5,10,.....,360。因此该图不能准确描述我的数据到达的顺序。
有没有办法可以保留X轴的顺序。 理想情况下,图中的X轴标记应与它到达的顺序相同。
答案 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标签