甘特图与纳秒

时间:2014-07-27 16:22:19

标签: java charts jfreechart gantt-chart

我需要为微处理器的数据创建甘特图,该微处理器具有纳秒精度和总持续时间为1秒。 JFreeChart中的甘特图似乎符合我的需要,除了它使用java.util.Date,它只有毫秒精度(如下所述:JFree TimeSeries Chart Spanning Nanoseconds)。

可以使用Date4j,但需要更改许多内部代码,因此实际上不可行Link

解决方法是创建一个ValueAxis子类来处理纳秒。有几个例子涉及使用ValueAxis herehere进行自定义标注,遗憾的是我无法找到创建纳秒时间刻度的方法。

如果有人能告诉我如何用纳秒标记替换甘特图的现有日期轴,我将不胜感激。

1 个答案:

答案 0 :(得分:3)

我设法通过用自定义数字格式轴覆盖日期轴来解决我的问题,该轴用于将时钟周期放在x轴上。

CategoryPlot plot = (CategoryPlot) chart.getPlot();       
CategoryItemRenderer renderer = plot.getRenderer(); 
renderer.setSeriesPaint(0, Color.blue); 

NumberAxis xAxis = new NumberAxis();
DecimalFormat format = (DecimalFormat)DecimalFormat.getNumberInstance(Locale.ENGLISH);
format.applyPattern("#");
xAxis.setNumberFormatOverride(format);

xAxis.setLabel("Cycles");
plot.setRangeAxis(xAxis);

renderer.setBaseToolTipGenerator(new IntervalCategoryToolTipGenerator("{3} - {4}", format));