-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SpiderWebPlot markers, CategoryPlot optional fixed category size, Force directed labeling algorithm for XY charts #29
base: master
Are you sure you want to change the base?
Conversation
…sibility for each key instead of for the entire plot. Added TextStroke to accommodate the drawing of category markers in SpiderWebPlot.
…h their respective interfaces to use generics and collections instead of raw arrays and lists.
…ue to have different positive and negative deviations. The renderer has been updated to it.
…Renderer, CategoryPlot, CategoryCrosshairState, CategoryItemLabelGenerator, CategoryToolTipGenerator, ObjectList and related. AbstractObjectList has been refactored to GenericObjectList, that PaintList, ShapeList, StrokeList, BooleanList and ObjectList extend, thus utilizing the generic nature of it. DatasetUtilities has some generic properties added, but this is a work in progress. CategoryPlot has had a lot of warnings removed, most of which were unchecked calls.
…KeyedValues2D, KeyedObjects2D
… conflicts. Conflicts: src/main/java/org/jfree/chart/LegendItemCollection.java src/main/java/org/jfree/chart/StandardChartTheme.java src/main/java/org/jfree/chart/plot/CategoryPlot.java src/main/java/org/jfree/chart/plot/Plot.java src/main/java/org/jfree/chart/plot/SpiderWebPlot.java src/main/java/org/jfree/chart/renderer/AbstractRenderer.java src/main/java/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java src/main/java/org/jfree/chart/util/BooleanList.java src/main/java/org/jfree/chart/util/GenericObjectList.java src/main/java/org/jfree/chart/util/ObjectList.java src/main/java/org/jfree/chart/util/ObjectUtilities.java src/main/java/org/jfree/chart/util/PaintList.java src/main/java/org/jfree/chart/util/ShapeList.java src/main/java/org/jfree/chart/util/StrokeList.java src/main/java/org/jfree/data/ComparableObjectItem.java src/main/java/org/jfree/data/ComparableObjectSeries.java src/main/java/org/jfree/data/DefaultKeyedValues.java src/main/java/org/jfree/data/DefaultKeyedValues2D.java src/main/java/org/jfree/data/DomainOrder.java src/main/java/org/jfree/data/KeyedObjects.java src/main/java/org/jfree/data/KeyedObjects2D.java src/main/java/org/jfree/data/KeyedValueComparator.java src/main/java/org/jfree/data/KeyedValueComparatorType.java src/main/java/org/jfree/data/KeyedValues2D.java src/main/java/org/jfree/data/RangeType.java src/main/java/org/jfree/data/category/DefaultCategoryDataset.java src/main/java/org/jfree/data/general/DatasetUtilities.java src/main/java/org/jfree/data/statistics/DefaultStatisticalCategoryDataset.java src/main/java/org/jfree/data/statistics/MultiValueCategoryDataset.java src/test/java/org/jfree/chart/plot/SpiderWebPlotTest.java src/test/java/org/jfree/data/time/MonthTest.java
…generics added to AbstractCategoryItemRenderer, CategoryItemRenderer, CategoryPlot, CategoryAxis and CategoryTick. Iterable added to AbstractObjectList
Conflicts: pom.xml src/main/java/org/jfree/chart/axis/CompassFormat.java src/test/java/org/jfree/chart/axis/junit/CompassFormatTest.java
…ring went wrong in case of two newlines.
Removed some warnings that came as a consequence of the recent generic code. Furthermore cleaned some javadoc, that had broken @see statements.
Conflicts: src/main/java/org/jfree/chart/renderer/LookupPaintScale.java src/test/java/org/jfree/chart/renderer/GrayPaintScaleTest.java src/test/java/org/jfree/chart/renderer/LookupPaintScaleTest.java
…CategoryItemRendererState, CategorySeriesLabelGenerator and StandardCategorySeriesLabelGenerator. Added fallback item label paint to the BarRenderer.
Conflicts: src/main/java/org/jfree/chart/axis/CyclicNumberAxis.java src/main/java/org/jfree/chart/axis/DateAxis.java src/main/java/org/jfree/chart/axis/LogAxis.java src/main/java/org/jfree/chart/axis/LogarithmicAxis.java src/main/java/org/jfree/chart/axis/NumberAxis.java src/main/java/org/jfree/chart/axis/NumberAxis3D.java src/main/java/org/jfree/chart/axis/PeriodAxis.java src/main/java/org/jfree/chart/axis/SymbolAxis.java src/main/java/org/jfree/chart/date/SerialDate.java src/main/java/org/jfree/chart/labels/CustomXYToolTipGenerator.java src/main/java/org/jfree/chart/labels/StandardCategorySeriesLabelGenerator.java src/main/java/org/jfree/chart/plot/CategoryMarker.java src/main/java/org/jfree/chart/plot/CategoryPlot.java src/main/java/org/jfree/chart/plot/CombinedRangeXYPlot.java src/main/java/org/jfree/chart/plot/FastScatterPlot.java src/main/java/org/jfree/chart/plot/Plot.java src/main/java/org/jfree/chart/plot/PolarPlot.java src/main/java/org/jfree/chart/plot/SpiderWebPlot.java src/main/java/org/jfree/chart/plot/dial/DialPlot.java src/main/java/org/jfree/chart/plot/dial/DialValueIndicator.java src/main/java/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java src/main/java/org/jfree/chart/renderer/category/BarRenderer.java src/main/java/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java src/main/java/org/jfree/chart/renderer/category/CategoryItemRenderer.java src/main/java/org/jfree/chart/renderer/category/LineAndShapeRenderer.java src/main/java/org/jfree/chart/renderer/category/ScatterRenderer.java src/main/java/org/jfree/chart/renderer/category/StackedBarRenderer3D.java src/main/java/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java src/main/java/org/jfree/chart/renderer/xy/XYAreaRenderer.java src/main/java/org/jfree/chart/renderer/xy/XYBarRenderer.java src/main/java/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRenderer.java src/main/java/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java src/main/java/org/jfree/chart/text/TextBlock.java src/main/java/org/jfree/chart/text/TextLine.java src/main/java/org/jfree/chart/util/ObjectList.java src/main/java/org/jfree/chart/util/Rotation.java src/main/java/org/jfree/data/ComparableObjectItem.java src/main/java/org/jfree/data/DefaultKeyedValue.java src/main/java/org/jfree/data/DefaultKeyedValues.java src/main/java/org/jfree/data/DefaultKeyedValues2D.java src/main/java/org/jfree/data/KeyedObjects.java src/main/java/org/jfree/data/KeyedObjects2D.java src/main/java/org/jfree/data/KeyedValueComparator.java src/main/java/org/jfree/data/category/DefaultCategoryDataset.java src/main/java/org/jfree/data/gantt/SlidingGanttCategoryDataset.java src/main/java/org/jfree/data/statistics/DefaultMultiValueCategoryDataset.java src/main/java/org/jfree/data/statistics/DefaultStatisticalCategoryDataset.java src/main/java/org/jfree/data/statistics/MeanAndStandardDeviation.java src/main/java/org/jfree/data/statistics/Statistics.java src/main/java/org/jfree/data/time/DynamicTimeSeriesCollection.java src/main/java/org/jfree/data/time/TimePeriodValues.java src/main/java/org/jfree/data/time/TimePeriodValuesCollection.java src/main/java/org/jfree/data/time/TimeSeriesCollection.java src/main/java/org/jfree/data/time/TimeSeriesDataItem.java src/main/java/org/jfree/data/time/TimeSeriesTableModel.java src/main/java/org/jfree/data/xy/XYDataItem.java src/test/java/org/jfree/chart/renderer/category/StackedBarRenderer3DTest.java src/test/java/org/jfree/data/time/MonthTest.java
Conflicts: src/main/java/org/jfree/chart/ChartFactory.java src/main/java/org/jfree/chart/ChartPanel.java src/main/java/org/jfree/chart/JFreeChart.java src/main/java/org/jfree/chart/LegendItem.java src/main/java/org/jfree/chart/LegendItemCollection.java src/main/java/org/jfree/chart/MouseWheelHandler.java src/main/java/org/jfree/chart/PaintMap.java src/main/java/org/jfree/chart/StandardChartTheme.java src/main/java/org/jfree/chart/StrokeMap.java src/main/java/org/jfree/chart/annotations/XYPolygonAnnotation.java src/main/java/org/jfree/chart/axis/Axis.java src/main/java/org/jfree/chart/axis/CategoryAxis.java src/main/java/org/jfree/chart/axis/CategoryTick.java src/main/java/org/jfree/chart/axis/ExtendedCategoryAxis.java src/main/java/org/jfree/chart/axis/MarkerAxisBand.java src/main/java/org/jfree/chart/axis/PeriodAxisLabelInfo.java src/main/java/org/jfree/chart/axis/SubCategoryAxis.java src/main/java/org/jfree/chart/axis/ValueAxis.java src/main/java/org/jfree/chart/demo/BarChartDemo1.java src/main/java/org/jfree/chart/entity/StandardEntityCollection.java src/main/java/org/jfree/chart/labels/AbstractXYItemLabelGenerator.java src/main/java/org/jfree/chart/labels/MultipleXYSeriesLabelGenerator.java src/main/java/org/jfree/chart/labels/StandardPieSectionLabelGenerator.java src/main/java/org/jfree/chart/panel/CrosshairOverlay.java src/main/java/org/jfree/chart/plot/CategoryPlot.java src/main/java/org/jfree/chart/plot/CombinedDomainCategoryPlot.java src/main/java/org/jfree/chart/plot/CombinedDomainXYPlot.java src/main/java/org/jfree/chart/plot/CombinedRangeCategoryPlot.java src/main/java/org/jfree/chart/plot/Crosshair.java src/main/java/org/jfree/chart/plot/DefaultDrawingSupplier.java src/main/java/org/jfree/chart/plot/MeterPlot.java src/main/java/org/jfree/chart/plot/MultiplePiePlot.java src/main/java/org/jfree/chart/plot/PiePlot.java src/main/java/org/jfree/chart/plot/Plot.java src/main/java/org/jfree/chart/plot/PlotRenderingInfo.java src/main/java/org/jfree/chart/plot/ThermometerPlot.java src/main/java/org/jfree/chart/plot/XYPlot.java src/main/java/org/jfree/chart/plot/dial/AbstractDialLayer.java src/main/java/org/jfree/chart/renderer/AbstractRenderer.java src/main/java/org/jfree/chart/renderer/DefaultPolarItemRenderer.java src/main/java/org/jfree/chart/renderer/WaferMapRenderer.java src/main/java/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java src/main/java/org/jfree/chart/renderer/category/CategoryItemRenderer.java src/main/java/org/jfree/chart/renderer/category/LevelRenderer.java src/main/java/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java src/main/java/org/jfree/chart/renderer/xy/CandlestickRenderer.java src/main/java/org/jfree/chart/renderer/xy/StackedXYAreaRenderer.java src/main/java/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java src/main/java/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java src/main/java/org/jfree/chart/renderer/xy/XYSplineRenderer.java src/main/java/org/jfree/chart/resources/JFreeChartResources.java src/main/java/org/jfree/chart/text/TextUtilities.java src/main/java/org/jfree/chart/title/LegendTitle.java src/main/java/org/jfree/chart/ui/RectangleAnchor.java src/main/java/org/jfree/chart/ui/about/AboutFrame.java src/main/java/org/jfree/chart/ui/about/BasicProjectInfo.java src/main/java/org/jfree/chart/ui/about/ContributorsPanel.java src/main/java/org/jfree/chart/ui/about/ContributorsTableModel.java src/main/java/org/jfree/chart/ui/about/LibraryPanel.java src/main/java/org/jfree/chart/ui/about/LibraryTableModel.java src/main/java/org/jfree/chart/ui/about/ProjectInfo.java src/main/java/org/jfree/chart/ui/about/SystemPropertiesTableModel.java src/main/java/org/jfree/chart/util/AbstractObjectList.java src/main/java/org/jfree/chart/util/AttributedStringUtils.java src/main/java/org/jfree/chart/util/HashUtils.java src/main/java/org/jfree/chart/util/ObjectUtilities.java src/main/java/org/jfree/chart/util/PaintList.java src/main/java/org/jfree/chart/util/PaintUtils.java src/main/java/org/jfree/chart/util/SerialUtils.java src/main/java/org/jfree/chart/util/ShapeList.java src/main/java/org/jfree/chart/util/ShapeUtils.java src/main/java/org/jfree/chart/util/StrokeList.java src/main/java/org/jfree/data/ComparableObjectSeries.java src/main/java/org/jfree/data/KeyToGroupMap.java src/main/java/org/jfree/data/KeyedObject.java src/main/java/org/jfree/data/extension/DatasetIterator.java src/main/java/org/jfree/data/function/PolynomialFunction2D.java src/main/java/org/jfree/data/gantt/TaskSeries.java src/main/java/org/jfree/data/gantt/TaskSeriesCollection.java src/main/java/org/jfree/data/general/DatasetUtilities.java src/main/java/org/jfree/data/general/DefaultKeyedValueDataset.java src/main/java/org/jfree/data/general/Series.java src/main/java/org/jfree/data/statistics/BoxAndWhiskerItem.java src/main/java/org/jfree/data/statistics/DefaultBoxAndWhiskerCategoryDataset.java src/main/java/org/jfree/data/statistics/DefaultBoxAndWhiskerXYDataset.java src/main/java/org/jfree/data/statistics/HistogramDataset.java src/main/java/org/jfree/data/statistics/MeanAndStandardDeviation.java src/main/java/org/jfree/data/statistics/SimpleHistogramDataset.java src/main/java/org/jfree/data/time/TimeSeries.java src/main/java/org/jfree/data/time/ohlc/OHLCSeriesCollection.java src/main/java/org/jfree/data/xy/DefaultTableXYDataset.java src/main/java/org/jfree/data/xy/DefaultXYZDataset.java src/main/java/org/jfree/data/xy/IntervalXYDelegate.java src/main/java/org/jfree/data/xy/MatrixSeriesCollection.java src/main/java/org/jfree/data/xy/VectorSeriesCollection.java src/main/java/org/jfree/data/xy/XIntervalSeriesCollection.java src/main/java/org/jfree/data/xy/XYIntervalSeriesCollection.java src/main/java/org/jfree/data/xy/XYRangeInfo.java src/main/java/org/jfree/data/xy/XYSeries.java src/main/java/org/jfree/data/xy/XYSeriesCollection.java src/main/java/org/jfree/data/xy/YIntervalSeriesCollection.java src/test/java/org/jfree/chart/BarChart3DTest.java src/test/java/org/jfree/chart/BarChartTest.java src/test/java/org/jfree/chart/ChartPanelTest.java src/test/java/org/jfree/chart/HashUtilitiesTest.java src/test/java/org/jfree/chart/JFreeChartTest.java src/test/java/org/jfree/chart/LegendItemCollectionTest.java src/test/java/org/jfree/chart/LineChart3DTest.java src/test/java/org/jfree/chart/StackedBarChart3DTest.java src/test/java/org/jfree/chart/StandardChartThemeTest.java src/test/java/org/jfree/chart/annotations/XYBoxAnnotationTest.java src/test/java/org/jfree/chart/annotations/XYDrawableAnnotationTest.java src/test/java/org/jfree/chart/annotations/XYImageAnnotationTest.java src/test/java/org/jfree/chart/axis/AxisTest.java src/test/java/org/jfree/chart/axis/CategoryAxis3DTest.java src/test/java/org/jfree/chart/axis/CompassFormatTest.java src/test/java/org/jfree/chart/axis/CyclicNumberAxisTest.java src/test/java/org/jfree/chart/axis/LogAxisTest.java src/test/java/org/jfree/chart/axis/LogarithmicAxisTest.java src/test/java/org/jfree/chart/axis/ModuloAxisTest.java src/test/java/org/jfree/chart/axis/NumberAxis3DTest.java src/test/java/org/jfree/chart/axis/PeriodAxisTest.java src/test/java/org/jfree/chart/axis/SubCategoryAxisTest.java src/test/java/org/jfree/chart/axis/SymbolAxisTest.java src/test/java/org/jfree/chart/labels/StandardPieSectionLabelGeneratorTest.java src/test/java/org/jfree/chart/plot/CategoryPlotTest.java src/test/java/org/jfree/chart/plot/MultiplePiePlotTest.java src/test/java/org/jfree/chart/plot/PiePlotTest.java src/test/java/org/jfree/chart/plot/PlotTest.java src/test/java/org/jfree/chart/plot/PolarPlotTest.java src/test/java/org/jfree/chart/plot/RingPlotTest.java src/test/java/org/jfree/chart/plot/SpiderWebPlotTest.java src/test/java/org/jfree/chart/plot/XYPlotTest.java src/test/java/org/jfree/chart/renderer/AbstractRendererTest.java src/test/java/org/jfree/chart/renderer/category/AbstractCategoryItemRendererTest.java src/test/java/org/jfree/chart/renderer/category/BarRenderer3DTest.java src/test/java/org/jfree/chart/renderer/category/LineRenderer3DTest.java src/test/java/org/jfree/chart/renderer/xy/AbstractXYItemRendererTest.java src/test/java/org/jfree/chart/renderer/xy/StandardXYItemRendererTest.java src/test/java/org/jfree/chart/renderer/xy/XYLine3DRendererTest.java src/test/java/org/jfree/chart/title/ImageTitleTest.java src/test/java/org/jfree/chart/title/LegendGraphicTest.java src/test/java/org/jfree/chart/util/LineUtilsTest.java src/test/java/org/jfree/data/RangeTest.java src/test/java/org/jfree/data/function/LineFunction2DTest.java src/test/java/org/jfree/data/general/DefaultPieDatasetTest.java src/test/java/org/jfree/data/statistics/HistogramBinTest.java src/test/java/org/jfree/data/statistics/HistogramDatasetTest.java src/test/java/org/jfree/data/statistics/SimpleHistogramBinTest.java src/test/java/org/jfree/data/statistics/SimpleHistogramDatasetTest.java src/test/java/org/jfree/data/time/TimeSeriesCollectionTest.java src/test/java/org/jfree/data/time/TimeSeriesTest.java src/test/java/org/jfree/data/xy/DefaultIntervalXYDatasetTest.java src/test/java/org/jfree/data/xy/DefaultTableXYDatasetTest.java src/test/java/org/jfree/data/xy/DefaultXYZDatasetTest.java src/test/java/org/jfree/data/xy/MatrixSeriesCollectionTest.java src/test/java/org/jfree/data/xy/VectorSeriesCollectionTest.java src/test/java/org/jfree/data/xy/XYDataItemTest.java src/test/java/org/jfree/data/xy/XYSeriesCollectionTest.java src/test/java/org/jfree/data/xy/XYSeriesTest.java
David Gilbert » jfreechart-fse #95 UNSTABLE |
…needed. Created two new methods in SerialUtils to handle maps of Stroke. Updated the test to reflect the changes.
David Gilbert » jfreechart-fse #96 UNSTABLE |
David Gilbert » jfreechart-fse #97 UNSTABLE |
I've fixed a couple of the tests that were broken, but can't seem to figure out why |
Just one hint: you (or probably your IDE) did many whitespaces only changes. This is very annoying, increases the patch-size and hides the actual changes. It would be much better if you could revert these changes. |
David Gilbert » jfreechart-fse #98 UNSTABLE |
David Gilbert » jfreechart-fse #99 UNSTABLE |
David Gilbert » jfreechart-fse #100 UNSTABLE |
David Gilbert » jfreechart-fse #101 UNSTABLE |
David Gilbert » jfreechart-fse #102 UNSTABLE |
David Gilbert » jfreechart-fse #103 UNSTABLE |
I've tried to minimize the line ending changes. From what I can see there are only changes to line endings/whitespace in the files that have code changes too. |
David Gilbert » jfreechart-fse #104 UNSTABLE |
David Gilbert » jfreechart-fse #105 UNSTABLE |
Hey
In my company we have made quite a number of changes:
CategoryPlot can have fixed category size (2010)
This change was made using a patch found on the sourceforge mailing list for JFreeChart a few years ago, so I won't take credit for this.
We draw most of our charts on PDF canvas, and a fixed category size lets us create bar charts with the same bar width/spacing throughout the document.
SpiderWebPlot has interval paints and markers with names (2012)
It's now possible to add intervals in the form of rings in the plot along with category markers.
An example of the features is seen here: Imgur
Force directed labeling algorithm (2013-2014)
We had troubles using XY charts due to the labels were all over the place. We did some research and found this article with corresponding Java code: https://www.ads.tuwien.ac.at/research/labeling/ .
The licensing was not compatible with JFreeChart so I contacted the authors and got their written permission to use the (albeit refactored) code under the LGPL.
A colleague of mine did the code import. The result is a new implementation of
XYLineAndShapeRenderer
calledorg.jfree.chart.renderer.xy.XYAutomaticLabelPlacementRenderer
All these features are used in our production systems, so we are quite confident that we have ironed out most of the bugs.
I've made an effort to merge our two source trees as close as they can get, and I hope you merge our changes.