如何在achartengine的x轴上做时间

时间:2013-07-22 11:20:34

标签: android android-layout achartengine

高人们在数据库中存储1到10之间的数字,每个数字都存储在数据库中存储的时间。所以我有两组数据来绘制y轴上的数字和x轴上的时间。但是我想以某种方式做到这一点,以便在小时内绘制时间。所以说我在2小时内拍了4个数字,在13:30,第9点,第9点,第14点, 3点14:30,5点15点。绘制轴很容易,但是当我想将它绘制为历史事件时,x轴给出了2个问题,意味着轴的名称为hrs,轴上的0将是当前时间,例如renderer.addTextLabel(0, 15:07);,然后轴上的1将是一小时前或当前时间减去60分钟,因此renderer.addTextLabel(1, 14:07);和轴上的finnaly 2将是2小时前renderer.addTextLabel(2, 13:07);。 我的图表中的两个问题是一个,因为当绘制图形时,当前时间比过去时间更大,x轴从2开始并且下降到0而不是从0开始并且上升到2。其次,图表以100s而不是60s递增,代表时间。所以任何时间值都比13:59和14:00说他们之间有更大的差距是图表假设应该有数字13:60或13:80或13:99的值,如果我们计算的话是的,但在增加下一个数字之前,显然时间会增加到60。我该如何解决这个问题?我是android和achartengine的新手所以请你详细说明你是否不确定。感谢

1 个答案:

答案 0 :(得分:2)

首先,声明2个渲染器,一个用于您的数据,一个用于您的图表,以及一个TimeSeries。

renderer = new XYMultipleSeriesRenderer();
dataset = new XYMultipleSeriesDataset();

timeSeries = new TimeSeries("");
dataset.addSeries(timeSeries);


currentRenderer = new XYSeriesRenderer();
currentRenderer.setLineWidth(2);
currentRenderer.setFillPoints(true);
currentRenderer.setColor(Color.CYAN);
currentRenderer.setShowLegendItem(false);
renderer.addSeriesRenderer(currentRenderer);

然后将数据添加到TimeSeries(使用日期,而不是字符串或其他任何内容)

Date date = format.parse(datasList.get(i).first);
timeSeries.add(date, datasList.get(i).second);

然后设置您的图表,将其添加到您的视图并绘制它

charter.setChart(ChartFactory.getTimeChartView(view.getContext(),
                charter.getDataset(), charter.getRenderer(), "%tT"));
layout.addView(charter.getChart(), 0, new LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
charter.getChart().repaint();

就是这样,通常你有一个精彩的Tim​​eSeries图表