我正在使用JFreeChart在Java中创建一个应用程序,它显示了XY折线图。问题是它在行上显示数据集的每个点,而我不想显示这些点。关于如何删除这些点或使其不可见的任何想法?
这是一个示例屏幕截图:
代码如下:
JFrame frame = new JFrame();
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
renderer.setSeriesPaint(0, Color.RED);
renderer.setSeriesStroke(0, new BasicStroke(2.0f,
BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f,
new float[] { 2.0f, 4.0f }, 0.0f));
XYDataset ds = createDataset(i, p, capacity);
JFreeChart xylineChart = ChartFactory.createXYLineChart("", "",
"", ds, PlotOrientation.VERTICAL, true, true, false);
XYPlot plot = xylineChart.getXYPlot();
plot.setDomainGridlinePaint(Color.BLACK);
plot.setRangeGridlinePaint(Color.BLACK);
plot.setBackgroundPaint(Color.WHITE);
plot.setRenderer(renderer);
ChartPanel cp = new ChartPanel(xylineChart);
frame.getContentPane().add(cp);
答案 0 :(得分:2)
默认情况下,no-argument constructor中的XYLineAndShapeRenderer
“创建同时具有可见的线条和形状的新渲染器”。要删除这些点,您可以
使用alternative constructor指定所需的组合-没有形状的线,如here和ChartFactory.createXYLineChart
中所示:
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true, false);
调用@ setSeriesShapesVisible()
,就像@abhinavxeon建议here和the author建议here一样:
renderer.setSeriesShapesVisible(0, false)