Yes. Also for me it works in a test standalone app. I made quickly the code below which is more or less similar to the actual code failing ... still - works in the test standalone
When running the actual code with 1.0.19 it only shows the Shapes not the line between Not when using 1.0.9. If I turn them off the shapes, I do not see anything. So for now I hacked in to draw small circles as shapes to at least see the red "curve" ... bummer ... will have to dig deeper to see what environmental difference is causing this.
Test code below works fine. I share it since I anyway wrote it for this XYSplineRenderer test.
Code: Select all
package demos;
import java.awt.Color;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.StandardXYToolTipGenerator;
import org.jfree.chart.plot.CombinedRangeXYPlot;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYDifferenceRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.renderer.xy.XYSplineRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.xy.DefaultXYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
/**
* Testing XYSplineRenderer in 1.0.19
*
* @author Bernd Ruehlicke
*/
public class XYSplineRendererDemo extends ApplicationFrame {
private double[] xvalues = new double[10];
private double[] yvalues = new double[10];
private double[][] _data = new double[][]{xvalues, yvalues};
private XYLineAndShapeRenderer _xyitemrenderer;
private XYLineAndShapeRenderer _xyitemrendererH;
private static NumberAxis _dAxis = new NumberAxis("0");
private static NumberAxis _hAxis = new NumberAxis("0.0");
private static XYPlot _xyplotD;
private static XYPlot _xyplotH;
private static CombinedRangeXYPlot _combinedrangexyplot;
public DefaultXYDataset _datasetD = new DefaultXYDataset();
public DefaultXYDataset _datasetH = new DefaultXYDataset();
private TextTitle _subTitle = new TextTitle("Sub title");
private XYDifferenceRenderer _xydifferenceRendererD;
private XYDifferenceRenderer _xydifferenceRendererH;
public XYSeriesCollection _datasetDiffD = new XYSeriesCollection();
private XYSeries _dataSeriesLowerD = new XYSeries("Lower");
private XYSeries _dataSeriesUpperD = new XYSeries("Upper");
private NumberAxis _mAxis = new NumberAxis("Vert axis");
public XYSplineRendererDemo(String title) {
super(title);
createDataset();
createdDatasetDiffD();
_xyitemrenderer = new XYSplineRenderer();
_xyitemrenderer.setSeriesLinesVisible(0, true);
_xyitemrenderer.setSeriesShapesVisible(0, false);
_xyitemrenderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator());
_xyplotD = new XYPlot(_datasetD, _dAxis, null, _xyitemrenderer);
_xyplotD.setDomainCrosshairVisible(true);
_xyplotD.setDomainCrosshairLockedOnData(false);
_xyplotD.setRangeCrosshairVisible(false);
_xydifferenceRendererD = new XYDifferenceRenderer(Color.WHITE, Color.LIGHT_GRAY, false);
_xydifferenceRendererD.setRoundXCoordinates(true);
_xydifferenceRendererD.setBaseToolTipGenerator(new StandardXYToolTipGenerator());
ValueAxis dDomain = _xyplotD.getDomainAxis();
dDomain.setRange(0.0, 100.0);
_xyplotD.setDataset(1, _datasetDiffD);
_xyplotD.setRenderer(1, _xydifferenceRendererD);
_xyplotD.setDomainCrosshairVisible(true);
_xyplotD.setDomainCrosshairLockedOnData(false);
_xyplotD.setRangeCrosshairVisible(false);
_xyplotD.getRendererForDataset(_datasetD).setSeriesPaint(0, Color.RED);
_xyplotD.getRendererForDataset(_datasetDiffD).setSeriesPaint(0, Color.BLACK);
_xyplotD.getRendererForDataset(_datasetDiffD).setSeriesPaint(1, Color.BLUE);
_xyitemrendererH = new XYSplineRenderer();
_xyitemrendererH.setSeriesLinesVisible(0, true);
_xyitemrendererH.setSeriesShapesVisible(0, false);
_xyitemrendererH.setBaseToolTipGenerator(new StandardXYToolTipGenerator());
_xyplotH = new XYPlot(_datasetH, _hAxis, null, _xyitemrendererH);
ValueAxis hDomain = _xyplotH.getDomainAxis();
hDomain.setRange(0.0, 100.0);
_xydifferenceRendererH = new XYDifferenceRenderer(Color.WHITE, Color.LIGHT_GRAY, false);
_xydifferenceRendererH.setRoundXCoordinates(true);
_xydifferenceRendererH.setBaseToolTipGenerator(new StandardXYToolTipGenerator());
_xyplotH.setDataset(1, _datasetDiffD);
_xyplotH.setRenderer(1, _xydifferenceRendererH);
_xyplotH.setDomainCrosshairVisible(true);
_xyplotH.setDomainCrosshairLockedOnData(false);
_xyplotH.setRangeCrosshairVisible(false);
_xyplotH.getRendererForDataset(_datasetH).setSeriesPaint(0, Color.MAGENTA);
_xyplotH.getRendererForDataset(_datasetDiffD).setSeriesPaint(0, Color.DARK_GRAY);
_xyplotH.getRendererForDataset(_datasetDiffD).setSeriesPaint(1, Color.CYAN);
_mAxis.setAutoRangeIncludesZero(true);
_combinedrangexyplot = new CombinedRangeXYPlot(_mAxis);
_combinedrangexyplot.add(_xyplotD, 1);
_combinedrangexyplot.add(_xyplotH, 1);
_combinedrangexyplot.setGap(25.0);
JFreeChart chart = new JFreeChart("Hello", JFreeChart.DEFAULT_TITLE_FONT, _combinedrangexyplot, true);
chart.addSubtitle(_subTitle);
final ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new java.awt.Dimension(500, 300));
setContentPane(chartPanel);
}
private void createdDatasetDiffD() {
_dataSeriesUpperD.add(10, 2.1);
_dataSeriesLowerD.add(10, 1.0);
_dataSeriesUpperD.add(20, 2.5);
_dataSeriesLowerD.add(20, 1.0);
_dataSeriesUpperD.add(30, 2.8);
_dataSeriesLowerD.add(30, 1.0);
_dataSeriesUpperD.add(40, 2.1);
_dataSeriesLowerD.add(40, 1.0);
_dataSeriesUpperD.add(50, 2.7);
_dataSeriesLowerD.add(50, 1.0);
_dataSeriesUpperD.add(60, 1.4);
_dataSeriesLowerD.add(60, 1.0);
_dataSeriesUpperD.add(70, 1.7);
_dataSeriesLowerD.add(70, 1.0);
_dataSeriesUpperD.add(80, 1.9);
_dataSeriesLowerD.add(80, 1.0);
_dataSeriesUpperD.add(90, 2.1);
_dataSeriesLowerD.add(90, 1.0);
_dataSeriesUpperD.add(100, 2.7);
_dataSeriesLowerD.add(100, 1.0);
_datasetDiffD.addSeries(_dataSeriesLowerD);
_datasetDiffD.addSeries(_dataSeriesUpperD);
}
private void createDataset() {
_data[0][0] = 10.0;
_data[1][0] = 3.2;
_data[0][1] = 20.0;
_data[1][1] = 4.2;
_data[0][2] = 30.0;
_data[1][2] = 3.3;
_data[0][3] = 40.0;
_data[1][3] = 6.2;
_data[0][4] = 50.0;
_data[1][4] = 8.9;
_data[0][5] = 60.0;
_data[1][5] = 9.0;
_data[0][6] = 70.0;
_data[1][6] = 11.1;
_data[0][7] = 80.0;
_data[1][7] = 12.2;
_data[0][8] = 90.0;
_data[1][8] = 3.2;
_data[0][9] = 100.0;
_data[1][9] = 8.0;
_datasetD.addSeries("D",_data);
_datasetH.addSeries("H",_data);
}
public static void main(final String[] args) {
final XYSplineRendererDemo demo = new XYSplineRendererDemo("Spline");
demo.pack();
RefineryUtilities.centerFrameOnScreen(demo);
demo.setVisible(true);
}
}