Java JFree 图表实时图表将域标签从毫秒转换为 HH:MM:SS
Java JFree chart realtime chart convert domain label from millis to HH:MM:SS
我用 JFreechart 创建了一个实时图表,其中域轴是纪元毫秒。我希望标签显示 HH:MM:SS
.
这是我用来加载图表数据的代码块。我是 Java 的新手,非常感谢任何建议。
Thread thread = new Thread(){
public void run() {
try (Scanner scanner = new Scanner(chosenPort.getInputStream())) { // Read Data from Serial Port
int x = 0; // Set data
while(scanner.hasNextLine()) {
long epoch = System.currentTimeMillis();
chart.getXYPlot().getDomainAxis().setRange(epoch - 30000.00, epoch + 1000.00);
try{
String line = scanner.nextLine();
int number = Integer.parseInt(line); //
series.add(epoch,number); // add Data to Chart
p1.repaint();
}catch(Exception e) {}
}
}
}
};
我使用的是 XY 系列折线图而不是时间序列图。通过使用 JFreeChart chart = ChartFactory.createTimeSeriesChart
而不是 JFreeChart chart = ChartFactory.createXYLineChart
,可以自动解释和显示正确的 date/time 值。
我用 JFreechart 创建了一个实时图表,其中域轴是纪元毫秒。我希望标签显示 HH:MM:SS
.
这是我用来加载图表数据的代码块。我是 Java 的新手,非常感谢任何建议。
Thread thread = new Thread(){
public void run() {
try (Scanner scanner = new Scanner(chosenPort.getInputStream())) { // Read Data from Serial Port
int x = 0; // Set data
while(scanner.hasNextLine()) {
long epoch = System.currentTimeMillis();
chart.getXYPlot().getDomainAxis().setRange(epoch - 30000.00, epoch + 1000.00);
try{
String line = scanner.nextLine();
int number = Integer.parseInt(line); //
series.add(epoch,number); // add Data to Chart
p1.repaint();
}catch(Exception e) {}
}
}
}
};
我使用的是 XY 系列折线图而不是时间序列图。通过使用 JFreeChart chart = ChartFactory.createTimeSeriesChart
而不是 JFreeChart chart = ChartFactory.createXYLineChart
,可以自动解释和显示正确的 date/time 值。