2013-07-22 3 views
1

높은 사람들은 데이터베이스에 1에서 10 사이의 숫자를 저장하며 각 숫자는 데이터베이스에 저장된 시간과 함께 저장됩니다. 그래서 나는 y 축에 숫자와 x 축에 시간을 플롯하기위한 두 가지 데이터 세트를 가지고 있습니다. 그러나 나는 시간에 시간을 표시 할 수 있도록 그것을하고 싶다. 그래서 나는 2 시간 안에 4 개의 숫자를 취했다. 예. 9시 13 분 10 초, 14시 10 분. 3시 14 분, 5시 15 분. 축을 플로팅하는 것은 쉽지만 x 축은 2 개의 문제를 준다. 나는 역사적인 사건으로 그릴 때 문제가된다. 축의 이름이 hrs이고 축의 0이 현재 시간이된다. 말하자면 renderer.addTextLabel(0, 15:07);, 그 다음에 1이 나온다. 축은 1 시간 전 또는 현재 시간에서 60 분을 뺀 값이됩니다. 따라서 renderer.addTextLabel(1, 14:07); 축에서 finnaly 2는 2 시간 전 renderer.addTextLabel(2, 13:07);이됩니다. 현재 그래프는 그래프가 플롯되어있는 x 축이 2에서 시작하여 0에서 시작하여 최대 2 개가 아닌 0으로 내려가는 과거 시간보다 큰 값이기 때문에 그래프에있는 두 가지 문제점이 하나입니다. 두 번째로 그래프는 시간을 나타내는 60s보다는 100s에서 증가합니다. 그래서 시간 값이라면 13시 59 분이라고 말하고 14시는 그래프 사이의 간격이 13시 60 분 또는 13시 80 분 또는 13시 99 분인 것으로 가정하면 그래프 사이의 간격이 더 큽니다. 사실이긴하지만 분명히 다음 숫자를 증가시키기 전에 시간은 60까지 올라갑니다. 어떻게하면이 문제를 해결할 수 있을까요? 나는 안드로이드와 achartengine을 처음 사용하므로 확신이 서지 않으면 정교하게 물어보십시오. thanksachartengine에서 x 축에서 시간을 수행하는 방법

+1

해킹 된 LineChart가 아닌 TimeChart를 제작하는 것이 좋습니다. –

+0

차이점은 무엇이며 어떻게 할 지에 대한 자습서 링크가 있습니까? – user2357673

답변

2

먼저 렌더러 2 개, 데이터 용 1 개, 차트 용 1 개, 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); 

그런 다음

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

다음 차트를 설정 (날짜가 아닌 다른 문자열 또는 아무것도) 당신의 시계열에 datas를 추가하여보기에 추가하고 그것을

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(); 
페인트

그리고 그게 전부입니다. 보통 TimeSeries의 훌륭한 차트를 가지고 있습니다.

관련 문제