XYPlot
シリーズを変えずに色違いの形にすることは可能ですか?
1つのアイデアは拡張するXYLineAndShapeRenderer
ことですが、描画されたときに単一の形状の色をどこで変更できますか?
XYPlot
シリーズを変えずに色違いの形にすることは可能ですか?
1つのアイデアは拡張するXYLineAndShapeRenderer
ことですが、描画されたときに単一の形状の色をどこで変更できますか?
私は自分で解決策を見つけました
public class QualityChartRenderer extends XYLineAndShapeRenderer {
private int dataSeries;
public QualityChartRenderer(double high, double low, int dataSeries) {
this.dataSeries = dataSeries;
}
@Override
public void drawItem(Graphics2D g2, XYItemRendererState state,
Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot,
ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset,
int series, int item, CrosshairState crosshairState, int pass) {
Paint paint = getSeriesPaint(series);
if (series == dataSeries && item < 2) {
setSeriesPaint(series, Color.RED);
}
super.drawItem(g2, state, dataArea, info, plot, domainAxis, rangeAxis,
dataset, series, item, crosshairState, pass);
setSeriesPaint(series, paint);
}
}
描かれた図形ごとに、自分の状態をチェックし (ここでは のみitem < 2
)、シリーズ全体の色を変更します。描画後に元に戻します。
これはハックのように感じます。フレームワーク内でより洗練されたソリューションはありますか?