Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JFreeChart如何获取时间序列图上显示的数据点_Java_Swing_Jfreechart - Fatal编程技术网

Java 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<

我只想让图表上的数据点显示出来,我该怎么做?该图显示为直线图,但我希望每个单独的数据点都有小标记

应用程序的JFreeChart部分是:

    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)