2010-08-05 35 views
1

我有一個帶有XY數據集的TimeSeries圖表,它有每個日期的毫秒數。 現在我想要一個只在軸上顯示每個日期的圖表,而不管日期的範圍是什麼。到目前爲止,我已經知道只打印日期,而不是時間(通過setNumberFormatOverride()方法)。 什麼我現在,是這樣的: alt text http://dl.getdropbox.com/u/1144075/Bildschirmfoto%202010-08-05%20um%2016.51.39.JPGjFreeChart:DateAxis表現得像一個CategoryAxis。只有離散的打印日期值

我想要的,是這樣的: alt text http://dl.getdropbox.com/u/1144075/Bildschirmfoto%202010-08-05%20um%2016.54.54.JPG

這是我的代碼片段。另外,setLabelAngle()方法不起作用?!

JFreeChart chart = ChartFactory.createTimeSeriesChart(...); 
XYPlot xyplot = (XYPlot)chart.getPlot(); 
DateAxis dateaxis = (DateAxis) xyplot.getDomainAxis(); 
dateaxis.setLabelAngle(Math.PI/6.0);` 
numberaxis.setNumberFormatOverride((DecimalFormat)DecimalFormat.getInstance(Locale.GERMAN)); 

回答

2

您可以設置TickUnit任何方便DateTickUnitType。我用在這個例子中DAYMMM驗證Locale

axis.setTickUnit(new DateTickUnit(DateTickUnitType.DAY, 1, 
    new SimpleDateFormat("dd.MMM.yy", Locale.GERMAN))); 

您是一位老顧客,我會解決的第二個問題,太:setLabelAngle()工作得很好,但它在改變軸標籤圖表傳奇。使用setVerticalTickLabels()是刻度標籤本身的替代方法:

axis.setVerticalTickLabels(true); 
+1

axis.setVerticalTickLabels(true)垂直顯示標籤。如果您想要將刻度標籤的角度更改爲45度,那麼假設setLabelAngle()對DateAxis無效。 – sufinawaz 2013-06-17 21:39:38