JFreeChart Changelog

What's new in JFreeChart 1.0.19

Jul 31, 2014
  • Bug Fixes:
  • fixed clipping issues for combined plots in JavaFX;
  • fix a memory leak in the new JavaFX ChartCanvas class;
  • CombinedDomainXYPlot and CombinedRangeXYPlot now take into account the
  • pannable flags in the subplots;
  • FastScatterPlot panning direction is corrected;
  • added rendering hints to sharpen gridlines and borders in most output formats;
  • JFreeSVG updated to version 2.0.

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.17 (Nov 25, 2013)

  • Bug Fixes:
  • Multithreading issue with DateAxis;
  • BorderArrangement.add() possible ClassCastException;
  • XYSeriesCollection.removeSeries(int) does not deregister listener;
  • WaterfallBarRenderer uses wrong color for diff 0.

New in JFreeChart 1.0.16 (Sep 14, 2013)

  • Bug Fixes:
  • 1107 : 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.15 (Jul 5, 2013)

  • Added support for non-visible series in XYBarRenderer, minor gridlines in
  • PolarPlot, legend item ordering, chart editor enhancements, updates to
  • StandardDialScale, localisation files for Japanese and refactored parameter
  • checks.
  • This release also fixes a minor security flaw in the DisplayChart class,
  • detected and reported by OSI Security
  • Patches:
  • LegendTitle order attribute (by Simon Kaczor);
  • ChartComposite does not dispose popup (by Sebastiao Correia);
  • PaintAlpha for 3D effects (by Dave Law);
  • Bug Fixes:
  • Rendering anomaly for XYPlots;
  • ValueAxis.reserveSpace() problem for axes with fixed dimension;
  • DeviationRenderer optimisation (by Milan Ramaiya);
  • SWTGraphics2D get/setStroke() problem;
  • DefaultPolarItemRenderer does not populate seriesKey in LegendItem;
  • Missing text in SWTGraphics2D (by Kevin Xu);
  • Maven fixes (Martin Hoeller);
  • DateAxis endless loop (by Martin Hoeller);
  • TimeSeries calculates range incorrectly in addOrUpdate();
  • TimeSeriesCollection.findRangeBounds() regression;
  • XYDifferenceRenderer fix (by Patrick Schlott/Christoph Schroeder);
  • SWT print job (by Jonas Rüttimann);
  • Path disclosure vulnerability in DisplayChart servlet;
  • Also fixed a rendering issue for polar charts using an inverted axis.

New in JFreeChart 1.0.14 (Nov 21, 2011)

  • added support for multiple axes in PolarPlot, performance improvements in the TimeSeriesCollection class, mouse wheel rotation in the PiePlot class,
  • improved Maven support, a range of other minor functional enhancements and numerous bug fixes
  • see the NEWS and ChangeLog files for details.

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 (Feb 4, 2009)

  • API Adjustments:
  • CategoryPlot : added mapDatasetToDomainAxes() and mapDatasetToRangeAxes() methods;
  • Month : added a new constructor Month(Date, TimeZone, Locale) and deprecated Month(Date, TimeZone);
  • Quarter : added a new constructor Quarter(Date, TimeZone, Locale) and deprecated Quarter(Date, TimeZone);
  • XYPlot : added mapDatasetToDomainAxes() and mapDatasetToRangeAxes() methods;
  • Year : added a new constructor Year(Date, TimeZone, Locale) and deprecated Year(Date, TimeZone);
  • Bug Fixes:
  • 2471906 : XYAreaRenderer with dashed outline - performance problem;
  • 2452078 : StackedAreaChart has gaps;
  • 2275695 : NullPointerException for SubCategoryAxis on plot with null dataset;
  • 2221495 : XYLineAnnotation with dashed stroke;
  • 2216511 : SWTBarChartDemo1 throws RuntimeException;
  • 2201869 : DateAxis tick label position error;
  • 2121818 : Label link lines for very thin RingPlot;
  • 2113627 : XYStepRenderer item labels;
  • 1955483 : XYSeries.addOrUpdate() problem.
  • Also fixed StackedXYBarRenderer which was ignoring the shadowsVisible attribute.

New in JFreeChart 1.0.9 (Jan 5, 2008)

  • HashUtilities - added hashCode() methods for BooleanList, PaintList and StrokeList;
  • ImageMapUtilities - added htmlEscape(String);
  • IntervalMarker - added new constructor;
  • Range - added intersects(Range) and scale(Range, double);
  • TextTitle - added protected methods arrangeNN(), arrangeFN() and arrangeRN();
  • XYDataItem - added getXValue() and getYValue() methods;
  • XYPlot - added setFixedDomainAxisSpace(AxisSpace, boolean) and setFixedRangeAxisSpace(AxisSpace, boolean);
  • XYSeriesCollection - added getSeries(Comparable) method.
  • Fix: CandlestickChart.getCategoryPlot() - ClassCastException;
  • Fix: testGetFirstMillisecondWithTimeZone fails in 1.0.8a;
  • Fix: 1.0.8a breaks URLs in HTML image maps;
  • Fix: GroupedStackedBarRenderer works only for primary dataset;
  • Fix: Endless loop in paint of XYPlot;
  • Fix: Cross-site scripting vulnerabilities in image map code;
  • Fix: Background image not shown with SWT;
  • Fix: ChartEntity.getImageMapAreaTag() needs nohref;
  • Fix: OverLIBToolTipTagFragmentGenerator not escaping single quote;
  • Fix: Escape Image Map Data;
  • Fix: AbstractRenderer.hashcode() method returns the same value;