是否可以在JFreeChart中将一个点连接到所有其他点
这里应该怎么样
所以围绕X点的所有点
chart.setBackgroundPaint(Color.white);
final XYPlot plot = chart.getXYPlot();
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
Shape cross = ShapeUtilities.createDiagonalCross(3, 1);
Shape somehing = ShapeUtilities.createDiamond(4);
final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
renderer.setSeriesLinesVisible(0, false);
renderer.setSeriesLinesVisible(1, false);
renderer.setSeriesLinesVisible(2, false);
renderer.setSeriesLinesVisible(3, false);
renderer.setSeriesShape(0, cross);
renderer.setSeriesShape(1, somehing);
renderer.setSeriesShape(2, somehing);
renderer.setSeriesShape(3, somehing);
renderer.setSeriesPaint(0, Color.RED);
renderer.setSeriesPaint(1, Color.BLUE);
renderer.setSeriesPaint(2, Color.YELLOW);
renderer.setSeriesPaint(2, Color.green);
plot.setRenderer(renderer);
plot.setBackgroundPaint(Color.BLACK);
// change the auto tick unit selection to integer units only...
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
// OPTIONAL CUSTOMISATION COMPLETED.
return chart;
谢谢你
答案 0 :(得分:3)
您需要自定义渲染器。此最小示例会覆盖XYLineAndShapeRenderer
方法drawPrimaryLine()
。它绘制相对于具有anchor
作为其系列索引的项的行。您需要概括现有的实现,替换下面显示的行。
附录:该示例只是将anchor
作为构造函数参数传递,但您可以扩展XYDataset
以包含每个系列的唯一值。
MyRenderer r = new MyRenderer(8);
XYPlot plot = new XYPlot(dataset, new NumberAxis("X"), new NumberAxis("Y"), r);
JFreeChart chart = new JFreeChart(plot);
…
private static class MyRenderer extends XYLineAndShapeRenderer {
private final int anchor;
public MyRenderer(int acnchor) {
this.anchor = acnchor;
}
@Override
protected void drawPrimaryLine(XYItemRendererState state, Graphics2D g2,
XYPlot plot, XYDataset dataset, int pass, int series, int item,
ValueAxis domainAxis, ValueAxis rangeAxis, Rectangle2D dataArea) {
if (item == anchor) {
return;
}
…
double x0 = dataset.getXValue(series, anchor);
double y0 = dataset.getYValue(series, anchor);
…
}
}