您的乐队是否与类别相对应?如果他们这样做,您可以使用CategoryMarker
CategoryMarker marker = new CategoryMarker("Category 3");
marker.setLabel("Band Y");
marker.setPaint(Color.red);
marker.setOutlinePaint(Color.red);
marker.setAlpha(0.5f);
marker.setLabelAnchor(RectangleAnchor.TOP);
marker.setLabelTextAnchor(TextAnchor.TOP_CENTER);
marker.setLabelOffsetType(LengthAdjustmentType.CONTRACT);
plot.addDomainMarker(marker, Layer.BACKGROUND);
我不知道如何创建 Mutli-CategoryMarker 但您可以通过调整ItemMargin
andCategoryMargin
并添加其他内容来创建类似的东西CategoryMarkers
{
CategoryMarker marker = new CategoryMarker("Category 2");
marker.setLabel("Band X");
marker.setLabelAnchor(RectangleAnchor.TOP);
marker.setLabelTextAnchor(TextAnchor.TOP_CENTER);
marker.setLabelOffsetType(LengthAdjustmentType.CONTRACT);
plot.addDomainMarker(marker, Layer.BACKGROUND);
}
{
CategoryMarker marker = new CategoryMarker("Category 3");
plot.addDomainMarker(marker, Layer.BACKGROUND);
}
renderer.setItemMargin(0.0);
CategoryAxis axis = plot.getDomainAxis();
axis.setCategoryMargin(0);
}
您可以创建一种方法来添加多个标记,例如
private void addMarkers(List<Comparable> keys){
...
更正确的解决方案可能是编写自己的渲染器实现和相关代码