Reputation: 10092
I just want to get the data points on my chart to show up, how do I do this? The plot shows up fine as a line plot but I want small markers for each individual data point.
JFreeChart portion of the app is:
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;
}
Upvotes: 4
Views: 11425
Reputation: 205875
JFreeChart.createTimeSeriesChart()
uses an XYLineAndShapeRenderer
, so start by making the shapes visible.
renderer.setSeriesShapesVisible(true);
This related example illustrates a few of the other methods that affect the appearance.
Upvotes: 7