我希望x轴有不同的刻度标签格式 这样的事情。
11月1日然后时间格式应为小时..
是否可以使用jFreeChart TimePeriodValues
和TimePeriodValuesCollection
数据集。
答案 0 :(得分:5)
您需要使用DateFormatOverride
,其中两个SimpleDateFormat
用于中间期,另一个用于午夜,请尝试:
XYPlot plot = (XYPlot) chart.getPlot();
DateAxis axis = (DateAxis) plot.getDomainAxis();
axis.setTickUnit(new DateTickUnit(DateTickUnitType.HOUR, 6, new SimpleDateFormat("HH:mm")));
final SimpleDateFormat hourFmt = new SimpleDateFormat("HH:mm");
final SimpleDateFormat datFmt = new SimpleDateFormat("d.MMM");
axis.setDateFormatOverride(new DateFormat(){
@SuppressWarnings("deprecation")
@Override
public StringBuffer format(Date date, StringBuffer toAppendTo,FieldPosition fieldPosition) {
if ( date.getHours() == 0 ) {
return datFmt.format(date, toAppendTo, fieldPosition);
} else {
return hourFmt.format(date, toAppendTo, fieldPosition);
}
}
@Override
public Date parse(String source, ParsePosition pos) {
return hourFmt.parse(source,pos);
}
});