Java JFreeChart如何获取时间序列图上显示的数据点
我只想让图表上的数据点显示出来,我该怎么做?该图显示为直线图,但我希望每个单独的数据点都有小标记 应用程序的JFreeChart部分是:Java JFreeChart如何获取时间序列图上显示的数据点,java,swing,jfreechart,Java,Swing,Jfreechart,我只想让图表上的数据点显示出来,我该怎么做?该图显示为直线图,但我希望每个单独的数据点都有小标记 应用程序的JFreeChart部分是: private XYDataset createDataset() { final TimeSeries inclinometerAngles = new TimeSeries(TimeUnit.SECONDS); // Add all data from the map to the dataset final Set<
private XYDataset createDataset() {
final TimeSeries inclinometerAngles = new TimeSeries(TimeUnit.SECONDS);
// Add all data from the map to the dataset
final Set<Date> keys = data.keySet();
for (Date date : keys) {
Record r = data.get(date);
if (r.mcInclinometerAngle != null) {
inclinometerAngles.add(new Second(date), r.mcInclinometerAngle);
}
}
final TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(inclinometerAngles);
return dataset;
}
private void setupGraphics() {
final XYDataset dataset = createDataset();
final JFreeChart chart = createChart(dataset);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
chartPanel.setMouseZoomable(true, false);
setContentPane(chartPanel);
}
private JFreeChart createChart(final XYDataset dataset) {
final JFreeChart chart = ChartFactory.createTimeSeriesChart(
"Tracker Analysis",
"Date",
"Value",
dataset,
true,
true,
false
);
final XYPlot plot = chart.getXYPlot();
XYItemRenderer renderer = plot.getRenderer();
final StandardXYToolTipGenerator g = new StandardXYToolTipGenerator(
StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
new SimpleDateFormat(), new DecimalFormat("0.00")
);
renderer.setToolTipGenerator(g);
renderer.setItemLabelsVisible(true);
return chart;
}
private XYDataset createDataset(){
最终时间序列倾角计角度=新时间序列(时间单位:秒);
//将地图中的所有数据添加到数据集
最终设置键=data.keySet();
用于(日期:钥匙){
记录r=数据。获取(日期);
如果(r.mc倾斜计角度!=null){
添加(新的第二个(日期),r.mc倾斜仪角度);
}
}
最终TimeSeriesCollection数据集=新TimeSeriesCollection();
dataset.addSeries(倾斜仪);
返回数据集;
}
私有void setupGraphics(){
最终XYDataset数据集=createDataset();
最终JFreeChart图表=createChart(数据集);
最终图表面板图表面板=新图表面板(图表);
setPreferredSize(新java.awt.Dimension(500270));
chartPanel.setMouseZoomable(真、假);
setContentPane(图表面板);
}
私有JFreeChart createChart(最终XYDataset数据集){
最终JFreeChart图表=ChartFactory.createTimeSeriesChart(
“跟踪分析”,
“日期”,
“价值”,
数据集,
是的,
是的,
假的
);
最终XYPlot=chart.getXYPlot();
XYItemRenderer=plot.getRenderer();
最终标准XYToolTipGenerator g=新标准XYToolTipGenerator(
StandardXYToolTipGenerator.DEFAULT\u工具\u提示\u格式,
新的SimpleDataFormat(),新的DecimalFormat(“0.00”)
);
渲染器.setToolTipGenerator(g);
renderer.setItemLabelsVisible(true);
收益表;
}
使用一个,所以从使形状可见开始
renderer.setSeriesShapesVisible(true);
这说明了影响外观的一些其他方法。此方法现在需要2个参数。一个
int
和一个boolean
。int
表示序列,boolean
是标志。因此语法现在看起来像renderer.setSeriessShapesVisible(0,true)代码>。