我有两个属于同一数据集的 XYSeries。第一个系列必须仅显示形状,而第二个系列必须仅显示线条。两者必须具有相同的颜色。有办法做到吗?
提供一段代码以更好地理解:
XYSeries series = new XYSeries("S1", false); // autosort disabled
for(int i = 0; i < xValues.length; ++i)
series.add(xValues[i], yValues[i]);
XYSeries series1 = new XYSeries("S2", false);
for(int i = 0; i < xValues.length; ++i)
series1.add(yValues[i], xValues[i]);
XYSeriesCollection dataset = new XYSeriesCollection();
dataset.addSeries(series);
dataset.addSeries(series1);
// create a chart with title, axis labels, tooltips and maybe a legend
JFreeChart chart = ChartFactory.createScatterPlot(title, xLabel, yLabel, dataset,
PlotOrientation.VERTICAL, legend, true, false);
XYPlot plot = (XYPlot) chart.getPlot();
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
renderer.setSeriesLinesVisible(0, true);
renderer.setSeriesShapesVisible(1, false);
renderer.setSeriesLinesVisible(1, true);
最佳答案
基于此example ,我编辑了以下几行以获得下面的图像。
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) xyPlot.getRenderer();
renderer.setSeriesLinesVisible(1, true);
renderer.setSeriesShapesVisible(1, false);
renderer.setSeriesPaint(1, Color.blue);
附录:要获取匹配颜色对,您可以重写 getItemPaint()
,如下所示 here和 here .
关于java - 获得不同系列具有相同的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9763734/