JFreeChart Changelog

What's new in JFreeChart 1.0.18

Jul 4, 2014
  • Added JavaFX support with a new ChartViewer control that supports tooltips, mouse clicks, panning, zooming and a context menu.
  • Modified LogAxis to support super-scripted labels, improved the tick label generation for NumberAxis, added a new ProbabilityAxis (patch from John St. Ledger), enhanced XYStepAreaRenderer to support a 'stepPoint' attribute (patch from Lukasz Rzeszotarski), provided configurable direction labels in CompassFormat (patch from Simon Legner), added methods to add data item objects to VectorSeries, XIntervalSeries, YIntervalSeries and XYIntervalSeries (for consistency with other data series objects), improved the TimeSeries range calculations, provided center text support for the RingPlot class, and updated JCommon to version 1.0.22 (this fixes a bug in pie label rendering).
  • Bug Fixes:
  • BarRenderer3D now observes the 'visibleSeries' settings;
  • TimeSeriesCollection now takes xRange into account when calculating the range bounds;
  • added missing localisation for 'Save As' option on ChartPanel;
  • inverted SymbolAxis not displaying bands correctly;
  • fixed fillDomainGridBand() method in AbstractXYItemRenderer;
  • replaced ObjectList with java.util.Map to avoid bug in equals() methods.

New in JFreeChart 1.0.16 (Sep 16, 2013)

  • Fixed TimeZone issue in PeriodAxis.
  • Also fixed a line drawing issue with the StackedXYAreaRenderer, and a memory leak in the SWT ChartComposite class.

New in JFreeChart 1.0.14 (Nov 22, 2011)

  • Bug 3432721:
  • org/jfree/chart/plot/PolarPlot.java
  • (translateToJava2D): Fix calculation to work with any axis,
  • (translateValueThetaRadiusToJava2D): eliminate duplicate code;
  • tests/org/jfree/chart/plot/PolarPlotTests.java
  • (testTranslateToJava2D_NumberAxis): New method,
  • (testTranslateToJava2D_NumberAxisAndMargin): New method,
  • (testTranslateToJava2D_LogAxis): New method

New in JFreeChart 1.0.13 (Apr 21, 2009)

  • updates to the ChartPanel class to support copying charts to the clipboard, panning and mouse-wheel zooming, and an overlay mechanism that supports crosshairs;
  • enhancements to the auto-range calculation for axes, providing the ability to use subranges only and also to skip hidden series;
  • updates for many of the CategoryItemRenderer implementations to ensure that they respect the 'seriesVisible' flags;
  • an improvement to the TimeSeries class so that it is no longer necessary to specify the time period type in the constructor;
  • a new SamplingXYLineRenderer for improving the performance of time series charts with large datasets;
  • the XYSeries/XYSeriesCollection classes now cache the minimum and maximum data values to improve the performance of charts with large datasets;
  • entities are now created for the chart, data area and axes, allowing mouse clicks to be detected for these regions;
  • added a bar alignment factor to the XYBarRenderer class;
  • a new 'errorIndicatorStroke' field for the StatisticalLineAndShapeRenderer and XYErrorRenderer classes;
  • added a new HeatMapDataset interface, DefaultHeatMapDataset implementation, and a HeatMapUtilities class to make it easier to create heat map charts;
  • there is a new flag to allow an XYDataImageAnnotation to be included in the automatic range calculation for the axes;
  • additional attributes in the XYTextAnnotation class;
  • added a sampleFunction2DToSeries() method to the DatasetUtilities class;
  • some changes to the ChartPanel class that help to work around a regression in JRE 1.6.0_10 relating to drawing in XOR mode.
  • Regarding this final point:
  • the default value for the useBuffer flag has changed to true, which means that all charts will, by default, be rendered into an off-screen image before being displayed in the ChartPanel;
  • the zoom rectangle is drawn using XOR mode *only* when the useBuffer flag has been set to false. For most usage, this should improve performance (but at the cost of using more memory for each ChartPanel used in your application);
  • Bug Fixes:
  • 2690293 : Problem with Javascript escape characters;
  • 2617557 : StandardDialScale ignored tickLabelPaint;
  • 2612649 : Stroke selection in plot property editor;
  • 2583891 : SWTGraphics2D.fillPolygon() not implemented;
  • 2564636 : Month constructor ignores Locale;
  • 2502355 : ChartPanel sending multiple events;
  • 2490803 : PeriodAxis.setRange() method doesn't take into account that the axis displays whole periods;
  • In addition, a bug in the SlidingCategoryDataset class has been fixed, the correct outline paint is now used by GradientXYBarPainter, a new method has been added to the ImageMapUtilities class to escape special characters in Javascript strings to avoid problems with the OverLIB and DynamicDrive tooltips, and there are some important fixes in the LogAxis class.
  • This release passes 2110 JUnit tests (0 failures) on JRE 1.6.0_12.

New in JFreeChart 1.0.12 (Jan 6, 2009)

  • This release adds support for minor tick marks, mapping datasets to more than one axis, an important fix for the XYSeries class (relating to the addOrUpdate() method) plus numerous other bug fixes.

New in JFreeChart 1.0.11 (Dec 20, 2008)

  • API Adjustments:
  • AbstractRenderer added clearSeriesPaints() and clearSeriesStrokes() methods;
  • BarRenderer added shadowPaint attribute;
  • CategoryAxis added getCategoryMiddle() method;
  • CategoryPlot added getRendererCount() method;
  • ChartFactory added get/setChartTheme() methods;
  • ChartPanel increased default maximum drawing width and height;
  • ChartTheme new interface;
  • ChartUtilities added applyCurrentTheme() method;
  • CompositeTitle added backgroundPaint attribute;
  • GradientBarPainter new class;
  • LegendTitle added getWrapper() method;
  • OHLCSeriesCollection added xPosition attribute;
  • PaintScaleLegend new subdivisions field;
  • PiePlot added autoPopulate flags, and methods to clear section attributes;
  • Plot added setDrawingSupplier() method;
  • RegularTimePeriod the DEFAULT_TIME_ZONE field has been deprecated in this release;
  • RelativeDateFormat added methods to control formatting of hours and minutes see patch 2033092;
  • StandardChartTheme new class;
  • XYItemRendererState new methods;
  • XYPlot added getRendererCount() method;
  • XYShapeRenderer new class;
  • XYTaskDataset new class.
  • Patches:
  • Status calls to XYItemRendererState [Ulrich Voigt];
  • CompositeTitle drawing fix;
  • Additional formatters for RelativeDateFormat [Cole Markham];
  • Bug Fixes:
  • ChartComposite listener type;
  • Incorrect rendering in StackedBarRenderer3D;
  • WaferMapRenderer;
  • No key in LegendItemEntity for pie charts;
  • Also fixed drawing of alternate grid bands in SymbolAxis, the totalWeight calculation in the CombinedXXXPlot classes, a NullPointerException in the XYPlot class when drawing quadrants, outline visibility in the CategoryPlot class, and auto-range calculations with XYBarRenderer.