날짜별로 값이 표시되는 TimeSeries 차트가 있고 두 개의 다른 라인으로 표시되는 두 개의 시리즈가 있습니다. 문제는 특정 시리즈의 값이 특정 날짜에 포함되지 않는 경우가 있습니다. 이 경우 나는이 시리즈의 이전 지점에서 다음 지점으로 넘어갈 것이라고 가정한다. 불행히도 차트에서 올바르게 작동하지 않습니다. 뭔가 올바르게 그려지지 않은 것처럼 보입니다.JFreeChart : TimeSeries 차트에 여러 시계열이 잘못 표시되었습니다.
모든 시리즈에 적절한 날짜가 포함되어 있으면 괜찮습니다.
내 코드는 여기에 있습니다 :
for (String source : graphData.keySet()) {
SortedMap<LocalDate, BigDecimal> data = graphData.get(source);
LocalDate prevDate = null;
for (LocalDate date: data.keySet()) {
if (prevDate == null) {
prevDate = date;
continue;
}
dataset.add(new SimpleTimePeriod(prevDate.toDateMidnight().toDate(), date.toDateMidnight().toDate()), data.get(prevDate), source, true);
prevDate = date;
}
dataset.add(new SimpleTimePeriod(prevDate.toDateMidnight().toDate(), futureDate), data.get(prevDate), source, true);
}
Map<String, SortedMap<LocalDate, BigDecimal>> graphData
지도의 키는 일련의 이름을 모든 시리즈에 대한 데이터가 포함되어 있습니다. 그리고 말했듯이 시리즈 A에는 날짜 1, 2 및 3, 시리즈 B의 값이 1과 2 만 들어있는 경우가 있습니다.이 경우 A와 B의 라인이 제대로 보이지 않습니다 ...
그것을 고치는 쉬운 방법? B 시리즈의 누락 된 값을 선형 보간법을 사용하여 계산하여 데이터 세트에 넣는 방법은 실제로 구현하기가 매우 어렵습니다. 어쩌면 내가 놓친 것일까?
당신이 알고주기에 그것을하는 것이 좋습니다, 나는 고정 된 서로 다른 데이터 세트 및 렌더러에 내 시리즈를 이동하여. 그것은 – javagirl
우수했습니다; 접근법이 어떻게 도움이되었는지 자세히 설명하는 또 다른 답변을 추가 할 수 있습니다. – trashgod