我需要为微处理器的数据创建甘特图,该微处理器具有纳秒精度和总持续时间为1秒。 JFreeChart中的甘特图似乎符合我的需要,除了它使用java.util.Date,它只有毫秒精度(如下所述:JFree TimeSeries Chart Spanning Nanoseconds)。
可以使用Date4j,但需要更改许多内部代码,因此实际上不可行Link。
解决方法是创建一个ValueAxis子类来处理纳秒。有几个例子涉及使用ValueAxis here和here进行自定义标注,遗憾的是我无法找到创建纳秒时间刻度的方法。
如果有人能告诉我如何用纳秒标记替换甘特图的现有日期轴,我将不胜感激。
答案 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));