2010-12-10 59 views
2

我試圖在JFreeChart中實現具有特殊要求的a timeseries chart。我可以繪製圖表,但我不知道如何在圖表的最後一個值處實現垂直紅線。它應該總是在同一個地方,並且應該總是與最後一個值相交。將靜態網格線添加到JFreeChart時間序列圖表

我完全沒有想到如何做到這一點。我在想,它可能會作爲一個靜態網格線來實現,但我不知道如何指定一個。

此外,圖表的大小將是靜態的,所以有些迂迴的做法可以接受,希望不需要引入任何第三方庫。

我想要實現的圖像可以找到here

謝謝。

回答

5

嗯,我解決它使用標記。下面是它的代碼:

JFreeChart chart = ChartFactory.createTimeSeriesChart(...); 
XYPlot plot = chart.getXYPlot(); 
Long timestampToMark = new Date().getTime(); 
Marker m = new ValueMarker(timestampToMark); 
m.setStroke(new BasicStroke(2)); 
m.setPaint(Color.RED); 
plot.addDomainMarker(m); 

也許別人會覺得這個有用。

+0

+ +1爲更靈活的解決方案。 – trashgod 2012-02-17 01:36:05

1

我只是設置一個自定義十字線的最後一個域值:

XYPlot plot = chart.getXYPlot(); 
plot.setDomainCrosshairVisible(true); 
plot.setDomainCrosshairPaint(Color.red); 
plot.setDomainCrosshairStroke(new BasicStroke(3f)); 
plot.setDomainCrosshairValue(dataset.getXValue(0, dataset.getItemCount(0) - 1)); 
+1

如上所述,使用標記 – 2012-02-10 21:43:52

+0

謝謝!我會試一試。 – trashgod 2012-02-10 23:30:22