我有两种方法可以做到这一点。它们都不优雅,但这可能是你问题的现实。
一个是你可以定义两个恰好相互连接的系列。这可能是您最好的选择,但您还必须修复您的传奇。
这将使您的第二个系列显示为虚线:
plot.getRenderer().setSeriesStroke(
1,
new BasicStroke(
2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
1.0f, new float[] {6.0f, 6.0f}, 0.0f
)编辑:我原来的“第二选项”错了。这是一个更好的方法:
覆盖AbstractRenderer中的getItemStroke()方法。
final BasicStroke dashedStroke = new BasicStroke(
2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
1.0f, new float[] {6.0f, 6.0f}, 0.0f);
XYLineAndShapeRenderer render = new XYLineAndShapeRenderer() {
@Override
public Stroke getItemStroke(int row, int column) {
if (column < dashedThreshold) {
return lookupSeriesStroke(row);
} else {
return dashedStroke;
}
};