I have some logic which I am using to construct a series of clusters. So far, to denote the cluster to which each point on the graph belongs to, I am using a series of colours, where points belonging to the same cluster are of the same colour.
Besides that, I would also like to display the centre of each cluster since this will help me see how my cluster building algorithm performs. To do this at the moment, I am writing some text on the graph through the use of the XPointerAnnotation
class. The problem with this is that I think that having text on top of points can lead to a messy plot (considering that it is highly likely that there will be hundreds of points).
I thought of drawing lines going outwards, from the centre point to each of the members of its cluster. The problem I am facing is that I can't quite seem to find the correct method or methods which does that.
I have managed to find the source of XYLineAndShapeRenderer
and have tried to use it as a guide, but I still get no custom lines drawn on the plot. I have tried to override the drawPrimaryLine
, drawPrimaryLineAsPath
and drawSecondaryPass
methods, but to no avail.
The code I am using to render the lines is as follows:
int x1 = (int) dataset.getXValue(series, 0);
int y1 = (int) dataset.getYValue(series, 0);
int x2 = (int) dataset.getXValue(series, item);
int y2 = (int) dataset.getYValue(series, item);
g2.drawLine(x1, y1, x2, y2);
System.out.println(String.format("Drawing %d %d %d %d %s", x1, y1, x2, y2, g2.getColor()));
State s = (State) state;
if (item == s.getLastItemIndex()) {
// draw path
drawFirstPassShape(g2, pass, series, item, s.seriesPath);
}
The print statement prints the right coordinates and the right colours, so it just seems that the graphics that I am adding is not being rendered. I have tried calling super
, both before and after my code is executed but to no avail either.
Any directions would be appreciated. Thanks.