2010-08-05 82 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