jFree绘制x轴刻度标签的不同时间格式

时间:2014-05-13 13:33:10

标签: jfreechart

我希望x轴有不同的刻度标签格式 这样的事情。

11月1日然后时间格式应为小时..

enter image description here

是否可以使用jFreeChart TimePeriodValuesTimePeriodValuesCollection数据集。

1 个答案:

答案 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);
    }

});

enter image description here