highcharts 7.1.1 → 7.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +1 -1
- package/css/annotations/popup.css +3 -3
- package/css/annotations/popup.scss +1 -1
- package/css/stocktools/gui.css +5 -5
- package/css/stocktools/gui.scss +1 -1
- package/es-modules/annotations/ControlPoint.js +1 -1
- package/es-modules/annotations/MockPoint.js +45 -12
- package/es-modules/annotations/annotations.src.js +203 -166
- package/es-modules/annotations/controllable/ControllableCircle.js +2 -10
- package/es-modules/annotations/controllable/ControllableImage.js +2 -10
- package/es-modules/annotations/controllable/ControllableLabel.js +54 -9
- package/es-modules/annotations/controllable/ControllableRect.js +2 -10
- package/es-modules/annotations/controllable/controllableMixin.js +32 -4
- package/es-modules/annotations/controllable/markerMixin.js +1 -0
- package/es-modules/annotations/eventEmitterMixin.js +1 -0
- package/es-modules/annotations/navigationBindings.js +15 -11
- package/es-modules/annotations/popup.js +59 -81
- package/es-modules/annotations/types/CrookedLine.js +19 -7
- package/es-modules/annotations/types/ElliottWave.js +7 -6
- package/es-modules/annotations/types/Fibonacci.js +14 -14
- package/es-modules/annotations/types/InfinityLine.js +4 -4
- package/es-modules/annotations/types/Measure.js +41 -41
- package/es-modules/annotations/types/Pitchfork.js +5 -4
- package/es-modules/annotations/types/VerticalLine.js +6 -5
- package/es-modules/error-messages.js +6 -1
- package/es-modules/indicators/indicators.src.js +5 -3
- package/es-modules/mixins/nodes.js +16 -8
- package/es-modules/modules/accessibility/AccessibilityComponent.js +4 -4
- package/es-modules/modules/accessibility/KeyboardNavigation.js +17 -4
- package/es-modules/modules/accessibility/components/RangeSelectorComponent.js +3 -2
- package/es-modules/modules/accessibility/components/SeriesComponent.js +110 -2
- package/es-modules/modules/accessibility/components/ZoomComponent.js +1 -1
- package/es-modules/modules/accessibility/options.js +2 -1
- package/es-modules/modules/bellcurve.src.js +27 -29
- package/es-modules/modules/boost/boost-init.js +14 -0
- package/es-modules/modules/boost/boost-overrides.js +13 -3
- package/es-modules/modules/boost/wgl-renderer.js +30 -15
- package/es-modules/modules/boost/wgl-shader.js +33 -16
- package/es-modules/modules/boost/wgl-vbuffer.js +8 -4
- package/es-modules/modules/broken-axis.src.js +1 -1
- package/es-modules/modules/bullet.src.js +68 -68
- package/es-modules/modules/cylinder.src.js +3 -1
- package/es-modules/modules/data.src.js +9 -5
- package/es-modules/modules/draggable-points.src.js +1 -1
- package/es-modules/modules/drilldown.src.js +1 -1
- package/es-modules/modules/export-data.src.js +7 -8
- package/es-modules/modules/exporting.src.js +9 -1
- package/es-modules/modules/full-screen.src.js +1 -1
- package/es-modules/modules/funnel3d.src.js +10 -3
- package/es-modules/modules/histogram.src.js +162 -164
- package/es-modules/modules/item-series.src.js +10 -10
- package/es-modules/modules/networkgraph/layouts.js +16 -12
- package/es-modules/modules/networkgraph/networkgraph.src.js +147 -51
- package/es-modules/modules/offline-exporting.src.js +15 -2
- package/es-modules/modules/oldie-polyfills.src.js +1 -1
- package/es-modules/modules/organization.src.js +65 -20
- package/es-modules/modules/pareto.src.js +52 -51
- package/es-modules/modules/pattern-fill.src.js +1 -1
- package/es-modules/modules/price-indicator.src.js +1 -1
- package/es-modules/modules/pyramid3d.src.js +1 -1
- package/es-modules/modules/sankey.src.js +22 -10
- package/es-modules/modules/series-label.src.js +16 -8
- package/es-modules/modules/solid-gauge.src.js +128 -79
- package/es-modules/modules/static-scale.src.js +8 -1
- package/es-modules/modules/stock-tools-gui.js +1 -1
- package/es-modules/modules/streamgraph.src.js +11 -11
- package/es-modules/modules/sunburst.src.js +23 -2
- package/es-modules/modules/tilemap.src.js +58 -57
- package/es-modules/modules/timeline.src.js +17 -12
- package/es-modules/modules/treemap.src.js +6 -6
- package/es-modules/modules/variwide.src.js +39 -39
- package/es-modules/modules/vector.src.js +108 -107
- package/es-modules/modules/venn.src.js +4 -2
- package/es-modules/modules/windbarb.src.js +43 -43
- package/es-modules/modules/wordcloud.src.js +1 -0
- package/es-modules/modules/xrange.src.js +112 -104
- package/es-modules/parts/AreaSeries.js +4 -1
- package/es-modules/parts/Axis.js +809 -1870
- package/es-modules/parts/Chart.js +254 -743
- package/es-modules/parts/Color.js +160 -113
- package/es-modules/parts/ColumnSeries.js +9 -3
- package/es-modules/parts/DataLabels.js +31 -2
- package/es-modules/parts/Dynamics.js +73 -26
- package/es-modules/parts/FlagsSeries.js +6 -4
- package/es-modules/parts/Globals.js +20 -36
- package/es-modules/parts/Html.js +116 -235
- package/es-modules/parts/Interaction.js +17 -7
- package/es-modules/parts/Legend.js +277 -632
- package/es-modules/parts/MSPointer.js +62 -106
- package/es-modules/parts/Options.js +128 -367
- package/es-modules/parts/OrdinalAxis.js +12 -0
- package/es-modules/parts/PieSeries.js +61 -44
- package/es-modules/parts/PlotLineOrBand.js +38 -3
- package/es-modules/parts/Point.js +117 -227
- package/es-modules/parts/Pointer.js +273 -558
- package/es-modules/parts/RangeSelector.js +5 -3
- package/es-modules/parts/Responsive.js +8 -4
- package/es-modules/parts/ScrollablePlotArea.js +215 -81
- package/es-modules/parts/Scrollbar.js +38 -23
- package/es-modules/parts/Series.js +151 -47
- package/es-modules/parts/Stacking.js +8 -3
- package/es-modules/parts/StockChart.js +42 -29
- package/es-modules/parts/SvgRenderer.js +1080 -2100
- package/es-modules/parts/Tick.js +11 -4
- package/es-modules/parts/Time.js +179 -363
- package/es-modules/parts/Tooltip.js +23 -12
- package/es-modules/parts/TouchPointer.js +69 -187
- package/es-modules/parts/Utilities.js +593 -846
- package/es-modules/parts-3d/Axis.js +2 -2
- package/es-modules/parts-3d/Column.js +18 -8
- package/es-modules/parts-gantt/GanttSeries.js +17 -21
- package/es-modules/parts-gantt/GridAxis.js +183 -101
- package/es-modules/parts-gantt/PathfinderAlgorithms.js +2 -2
- package/es-modules/parts-gantt/TreeGrid.js +53 -36
- package/es-modules/parts-map/ColorAxis.js +35 -14
- package/es-modules/parts-map/MapBubbleSeries.js +2 -1
- package/es-modules/parts-map/MapSeries.js +29 -18
- package/es-modules/parts-more/AreaRangeSeries.js +13 -12
- package/es-modules/parts-more/ColumnRangeSeries.js +8 -2
- package/es-modules/parts-more/GaugeSeries.js +9 -9
- package/es-modules/parts-more/PackedBubbleSeries.js +152 -115
- package/es-modules/parts-more/RadialAxis.js +102 -8
- package/es-modules/parts-more/WaterfallSeries.js +148 -35
- package/highcharts-3d.js +68 -67
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +21 -11
- package/highcharts-gantt.d.ts +5 -3
- package/highcharts-gantt.js +618 -610
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.d.ts +5 -3
- package/highcharts-gantt.src.js +5185 -8892
- package/highcharts-more.js +144 -140
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +449 -194
- package/highcharts.d.ts +3943 -5236
- package/highcharts.js +454 -449
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +3943 -5236
- package/highcharts.src.js +4767 -8601
- package/highmaps.d.ts +5 -3
- package/highmaps.js +498 -494
- package/highmaps.js.map +1 -1
- package/highmaps.src.d.ts +5 -3
- package/highmaps.src.js +4547 -8507
- package/highstock.d.ts +5 -3
- package/highstock.js +597 -590
- package/highstock.js.map +1 -1
- package/highstock.src.d.ts +5 -3
- package/highstock.src.js +4871 -8661
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.src.js +1 -1
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.js +1 -1
- package/indicators/aroon-oscillator.src.js +1 -1
- package/indicators/aroon.js +1 -1
- package/indicators/aroon.src.js +1 -1
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.src.js +1 -1
- package/indicators/ema.js +1 -1
- package/indicators/ema.src.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +105 -105
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +6 -4
- package/indicators/indicators.js +9 -9
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +6 -4
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.src.js +1 -1
- package/indicators/macd.js +1 -1
- package/indicators/macd.src.js +1 -1
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.src.js +1 -1
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +1 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.src.js +1 -1
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +1 -1
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.js +92 -89
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +138 -15
- package/modules/annotations-advanced.js +128 -127
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +514 -396
- package/modules/annotations.d.ts +36 -0
- package/modules/annotations.js +81 -81
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.d.ts +36 -0
- package/modules/annotations.src.js +418 -315
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +1 -1
- package/modules/boost-canvas.src.js +1 -1
- package/modules/boost.js +63 -63
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +99 -39
- package/modules/broken-axis.js +1 -1
- package/modules/broken-axis.src.js +2 -2
- package/modules/bullet.js +1 -1
- package/modules/bullet.src.js +69 -69
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +1 -1
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +4 -2
- package/modules/data.js +4 -4
- package/modules/data.js.map +1 -1
- package/modules/data.src.js +10 -6
- package/modules/datagrouping.js +1 -1
- package/modules/datagrouping.src.js +1 -1
- package/modules/debugger.js +4 -4
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +7 -2
- package/modules/dependency-wheel.js +1 -1
- package/modules/dependency-wheel.src.js +1 -1
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +1 -1
- package/modules/draggable-points.src.js +2 -2
- package/modules/drilldown.js +1 -1
- package/modules/drilldown.src.js +2 -2
- package/modules/export-data.js +2 -2
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +8 -9
- package/modules/exporting.js +25 -25
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +11 -3
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +2 -2
- package/modules/funnel.js +1 -1
- package/modules/funnel.src.js +1 -1
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +11 -4
- package/modules/gantt.js +166 -164
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +422 -295
- package/modules/grid-axis.js +18 -16
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +184 -102
- package/modules/heatmap.js +22 -22
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +36 -15
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +186 -183
- package/modules/item-series.js +1 -1
- package/modules/item-series.src.js +11 -11
- package/modules/map-parser.js +1 -1
- package/modules/map-parser.src.js +1 -1
- package/modules/map.js +83 -83
- package/modules/map.js.map +1 -1
- package/modules/map.src.js +67 -34
- package/modules/networkgraph.js +10 -9
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.js +180 -72
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/offline-exporting.js +15 -15
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +17 -4
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +2 -2
- package/modules/oldie.js +2 -2
- package/modules/oldie.src.js +2 -2
- package/modules/organization.js +1 -1
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +66 -21
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +1 -1
- package/modules/parallel-coordinates.src.js +1 -1
- package/modules/pareto.js +1 -1
- package/modules/pareto.js.map +1 -1
- package/modules/pareto.src.js +53 -52
- package/modules/pathfinder.js +3 -3
- package/modules/pathfinder.js.map +1 -1
- package/modules/pathfinder.src.js +3 -3
- package/modules/pattern-fill.js +1 -1
- package/modules/pattern-fill.src.js +2 -2
- package/modules/price-indicator.js +1 -1
- package/modules/price-indicator.src.js +2 -2
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +2 -2
- package/modules/sankey.js +14 -14
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.js +39 -19
- package/modules/series-label.js +16 -16
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +17 -9
- package/modules/solid-gauge.js +5 -5
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +129 -80
- package/modules/sonification.js +1 -1
- package/modules/sonification.src.js +1 -1
- package/modules/static-scale.js +4 -4
- package/modules/static-scale.js.map +1 -1
- package/modules/static-scale.src.js +9 -2
- package/modules/stock-tools.js +2 -2
- package/modules/stock-tools.src.js +3 -3
- package/modules/stock.js +146 -145
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +105 -61
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +12 -12
- package/modules/sunburst.js +40 -40
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +30 -9
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +59 -58
- package/modules/timeline.js +12 -11
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +18 -13
- package/modules/treegrid.js +45 -43
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +238 -139
- package/modules/treemap.js +1 -1
- package/modules/treemap.src.js +7 -7
- package/modules/variable-pie.js +1 -1
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.js +1 -1
- package/modules/variwide.src.js +40 -40
- package/modules/vector.js +1 -1
- package/modules/vector.js.map +1 -1
- package/modules/vector.src.js +109 -108
- package/modules/venn.js +23 -23
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +5 -3
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +44 -44
- package/modules/wordcloud.js +10 -10
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +2 -1
- package/modules/xrange.js +12 -12
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +113 -105
- package/package.json +1 -1
- package/themes/avocado.js +21 -37
- package/themes/avocado.src.js +1 -1
- package/themes/dark-blue.js +1 -1
- package/themes/dark-blue.src.js +1 -1
- package/themes/dark-green.js +1 -1
- package/themes/dark-green.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/gray.js +1 -1
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/grid.js +1 -1
- package/themes/grid.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/skies.js +1 -1
- package/themes/skies.src.js +1 -1
- package/themes/sunset.js +21 -37
- package/themes/sunset.src.js +1 -1
- package/.DS_Store +0 -0
- package/es-modules/.DS_Store +0 -0
- package/es-modules/modules/annotations-legacy.src.js +0 -1977
- package/js/.DS_Store +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/* *
|
|
2
2
|
* Exporting module
|
|
3
3
|
*
|
|
4
4
|
* (c) 2010-2019 Torstein Honsi
|
|
@@ -1135,6 +1135,12 @@ extend(Chart.prototype, /** @lends Highcharts.Chart.prototype */ {
|
|
|
1135
1135
|
// Copy the options and add extra options
|
|
1136
1136
|
options = merge(chart.options, chartOptions);
|
|
1137
1137
|
|
|
1138
|
+
// Use userOptions to make the options chain in series right (#3881)
|
|
1139
|
+
options.plotOptions = merge(
|
|
1140
|
+
chart.userOptions.plotOptions,
|
|
1141
|
+
chartOptions && chartOptions.plotOptions
|
|
1142
|
+
);
|
|
1143
|
+
|
|
1138
1144
|
// create a sandbox where a new chart will be generated
|
|
1139
1145
|
sandbox = createElement('div', null, {
|
|
1140
1146
|
position: 'absolute',
|
|
@@ -1518,6 +1524,7 @@ extend(Chart.prototype, /** @lends Highcharts.Chart.prototype */ {
|
|
|
1518
1524
|
button.setState(0);
|
|
1519
1525
|
}
|
|
1520
1526
|
chart.openMenu = false;
|
|
1527
|
+
css(chart.renderTo, { overflow: 'hidden' }); // #10361
|
|
1521
1528
|
H.clearTimeout(menu.hideTimer);
|
|
1522
1529
|
fireEvent(chart, 'exportMenuHidden');
|
|
1523
1530
|
};
|
|
@@ -1622,6 +1629,7 @@ extend(Chart.prototype, /** @lends Highcharts.Chart.prototype */ {
|
|
|
1622
1629
|
}
|
|
1623
1630
|
|
|
1624
1631
|
css(menu, menuStyle);
|
|
1632
|
+
css(chart.renderTo, { overflow: '' }); // #10361
|
|
1625
1633
|
chart.openMenu = true;
|
|
1626
1634
|
},
|
|
1627
1635
|
|
|
@@ -121,11 +121,18 @@ seriesType('funnel3d', 'column',
|
|
|
121
121
|
edgeWidth: 0,
|
|
122
122
|
colorByPoint: true,
|
|
123
123
|
showInLegend: false,
|
|
124
|
+
/**
|
|
125
|
+
* @default {"align": "right", "crop": false, "inside": false, "overflow": "allow"}
|
|
126
|
+
*/
|
|
124
127
|
dataLabels: {
|
|
125
|
-
|
|
128
|
+
/** @ignore-option */
|
|
129
|
+
align: 'right',
|
|
130
|
+
/** @ignore-option */
|
|
126
131
|
crop: false,
|
|
132
|
+
/** @ignore-option */
|
|
127
133
|
inside: false,
|
|
128
|
-
|
|
134
|
+
/** @ignore-option */
|
|
135
|
+
overflow: 'allow'
|
|
129
136
|
}
|
|
130
137
|
}, {
|
|
131
138
|
// Override default axis options with series required options for axes
|
|
@@ -435,7 +442,7 @@ seriesType('funnel3d', 'column',
|
|
|
435
442
|
* Config objects
|
|
436
443
|
*
|
|
437
444
|
* @type {Array<number|Array<number>|*>}
|
|
438
|
-
* @extends series.
|
|
445
|
+
* @extends series.column.data
|
|
439
446
|
* @product highcharts
|
|
440
447
|
* @apioption series.funnel3d.data
|
|
441
448
|
*/
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
* @license @product.name@ JS v@product.version@ (@product.date@)
|
|
1
|
+
/* *
|
|
3
2
|
*
|
|
4
|
-
* (c) 2010-2017 Highsoft AS
|
|
5
|
-
*
|
|
3
|
+
* Copyright (c) 2010-2017 Highsoft AS
|
|
4
|
+
* Author: Sebastian Domas
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
|
|
6
|
+
* License: www.highcharts.com/license
|
|
7
|
+
*
|
|
8
|
+
* */
|
|
9
9
|
|
|
10
10
|
'use strict';
|
|
11
11
|
import H from '../parts/Globals.js';
|
|
@@ -19,11 +19,9 @@ var objectEach = H.objectEach,
|
|
|
19
19
|
arrayMin = H.arrayMin,
|
|
20
20
|
merge = H.merge;
|
|
21
21
|
|
|
22
|
-
/*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
**************************************************************************** */
|
|
22
|
+
/* ************************************************************************** *
|
|
23
|
+
* HISTOGRAM
|
|
24
|
+
* ************************************************************************** */
|
|
27
25
|
|
|
28
26
|
/**
|
|
29
27
|
* A dictionary with formulas for calculating number of bins based on the
|
|
@@ -63,163 +61,176 @@ function fitToBinLeftClosed(bins) {
|
|
|
63
61
|
/**
|
|
64
62
|
* Histogram class
|
|
65
63
|
*
|
|
66
|
-
* @
|
|
67
|
-
* @
|
|
68
|
-
* @
|
|
69
|
-
|
|
64
|
+
* @private
|
|
65
|
+
* @class
|
|
66
|
+
* @name Highcharts.seriesTypes.histogram
|
|
67
|
+
* @augments Highcharts.Series
|
|
68
|
+
*/
|
|
70
69
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
* frequencies.
|
|
75
|
-
*
|
|
76
|
-
* @product highcharts
|
|
77
|
-
* @sample {highcharts} highcharts/demo/histogram/ Histogram
|
|
78
|
-
* @since 6.0.0
|
|
79
|
-
* @extends plotOptions.column
|
|
80
|
-
* @excluding boostThreshold, pointInterval, pointIntervalUnit, stacking
|
|
81
|
-
* @optionparent plotOptions.histogram
|
|
82
|
-
**/
|
|
83
|
-
seriesType('histogram', 'column', {
|
|
70
|
+
seriesType(
|
|
71
|
+
'histogram',
|
|
72
|
+
'column',
|
|
84
73
|
/**
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
* `sturges`, `rice`. You can also define a function which takes a
|
|
89
|
-
* `baseSeries` as a parameter and should return a positive integer.
|
|
74
|
+
* A histogram is a column series which represents the distribution of the
|
|
75
|
+
* data set in the base series. Histogram splits data into bins and shows
|
|
76
|
+
* their frequencies.
|
|
90
77
|
*
|
|
91
|
-
* @
|
|
92
|
-
*
|
|
93
|
-
*/
|
|
94
|
-
binsNumber: 'square-root',
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Width of each bin. By default the bin's width is calculated as
|
|
98
|
-
* `(max - min) / number of bins`. This option takes precedence over
|
|
99
|
-
* [binsNumber](#plotOptions.histogram.binsNumber).
|
|
78
|
+
* @sample {highcharts} highcharts/demo/histogram/
|
|
79
|
+
* Histogram
|
|
100
80
|
*
|
|
101
|
-
* @
|
|
81
|
+
* @extends plotOptions.column
|
|
82
|
+
* @excluding boostThreshold, pointInterval, pointIntervalUnit, stacking
|
|
83
|
+
* @product highcharts
|
|
84
|
+
* @since 6.0.0
|
|
85
|
+
* @optionparent plotOptions.histogram
|
|
102
86
|
*/
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
x,
|
|
137
|
-
fitToBin;
|
|
138
|
-
|
|
139
|
-
binWidth = series.binWidth = series.options.pointRange = correctFloat(
|
|
140
|
-
isNumber(binWidth) ?
|
|
141
|
-
(binWidth || 1) :
|
|
142
|
-
(max - min) / binsNumber
|
|
143
|
-
);
|
|
144
|
-
|
|
145
|
-
// If binWidth is 0 then max and min are equaled,
|
|
146
|
-
// increment the x with some positive value to quit the loop
|
|
147
|
-
for (
|
|
148
|
-
x = min;
|
|
149
|
-
// This condition is needed because of the margin of error while
|
|
150
|
-
// operating on decimal numbers. Without that, additional bin was
|
|
151
|
-
// sometimes noticeable on the graph, because of too small precision
|
|
152
|
-
// of float correction.
|
|
153
|
-
x < max &&
|
|
154
|
-
(
|
|
155
|
-
series.userOptions.binWidth ||
|
|
156
|
-
correctFloat(max - x) >= binWidth ||
|
|
157
|
-
correctFloat(min + (frequencies.length * binWidth) - x) <= 0
|
|
158
|
-
);
|
|
159
|
-
x = correctFloat(x + binWidth)
|
|
160
|
-
) {
|
|
161
|
-
frequencies.push(x);
|
|
162
|
-
bins[x] = 0;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
if (bins[min] !== 0) {
|
|
166
|
-
frequencies.push(correctFloat(min));
|
|
167
|
-
bins[correctFloat(min)] = 0;
|
|
87
|
+
{
|
|
88
|
+
/**
|
|
89
|
+
* A preferable number of bins. It is a suggestion, so a histogram may
|
|
90
|
+
* have a different number of bins. By default it is set to the square
|
|
91
|
+
* root of the base series' data length. Available options are:
|
|
92
|
+
* `square-root`, `sturges`, `rice`. You can also define a function
|
|
93
|
+
* which takes a `baseSeries` as a parameter and should return a
|
|
94
|
+
* positive integer.
|
|
95
|
+
*
|
|
96
|
+
* @type {"square-root"|"sturges"|"rice"|number|function}
|
|
97
|
+
*/
|
|
98
|
+
binsNumber: 'square-root',
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Width of each bin. By default the bin's width is calculated as
|
|
102
|
+
* `(max - min) / number of bins`. This option takes precedence over
|
|
103
|
+
* [binsNumber](#plotOptions.histogram.binsNumber).
|
|
104
|
+
*
|
|
105
|
+
* @type {number}
|
|
106
|
+
*/
|
|
107
|
+
binWidth: undefined,
|
|
108
|
+
pointPadding: 0,
|
|
109
|
+
groupPadding: 0,
|
|
110
|
+
grouping: false,
|
|
111
|
+
pointPlacement: 'between',
|
|
112
|
+
tooltip: {
|
|
113
|
+
headerFormat: '',
|
|
114
|
+
pointFormat: (
|
|
115
|
+
'<span style="font-size: 10px">{point.x} - {point.x2}' +
|
|
116
|
+
'</span><br/>' +
|
|
117
|
+
'<span style="color:{point.color}">\u25CF</span>' +
|
|
118
|
+
' {series.name} <b>{point.y}</b><br/>'
|
|
119
|
+
)
|
|
168
120
|
}
|
|
169
121
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
122
|
+
},
|
|
123
|
+
merge(derivedSeriesMixin, {
|
|
124
|
+
setDerivedData: function () {
|
|
125
|
+
var data = this.derivedData(
|
|
126
|
+
this.baseSeries.yData,
|
|
127
|
+
this.binsNumber(),
|
|
128
|
+
this.options.binWidth
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
this.setData(data, false);
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
derivedData: function (baseData, binsNumber, binWidth) {
|
|
135
|
+
var series = this,
|
|
136
|
+
max = arrayMax(baseData),
|
|
137
|
+
// Float correction needed, because first frequency value is not
|
|
138
|
+
// corrected when generating frequencies (within for loop).
|
|
139
|
+
min = correctFloat(arrayMin(baseData)),
|
|
140
|
+
frequencies = [],
|
|
141
|
+
bins = {},
|
|
142
|
+
data = [],
|
|
143
|
+
x,
|
|
144
|
+
fitToBin;
|
|
145
|
+
|
|
146
|
+
binWidth = series.binWidth = series.options.pointRange = (
|
|
147
|
+
correctFloat(
|
|
148
|
+
isNumber(binWidth) ?
|
|
149
|
+
(binWidth || 1) :
|
|
150
|
+
(max - min) / binsNumber
|
|
151
|
+
)
|
|
152
|
+
);
|
|
153
|
+
|
|
154
|
+
// If binWidth is 0 then max and min are equaled,
|
|
155
|
+
// increment the x with some positive value to quit the loop
|
|
156
|
+
for (
|
|
157
|
+
x = min;
|
|
158
|
+
// This condition is needed because of the margin of error while
|
|
159
|
+
// operating on decimal numbers. Without that, additional bin
|
|
160
|
+
// was sometimes noticeable on the graph, because of too small
|
|
161
|
+
// precision of float correction.
|
|
162
|
+
x < max &&
|
|
163
|
+
(
|
|
164
|
+
series.userOptions.binWidth ||
|
|
165
|
+
correctFloat(max - x) >= binWidth ||
|
|
166
|
+
correctFloat(
|
|
167
|
+
min + (frequencies.length * binWidth) - x
|
|
168
|
+
) <= 0
|
|
169
|
+
);
|
|
170
|
+
x = correctFloat(x + binWidth)
|
|
171
|
+
) {
|
|
172
|
+
frequencies.push(x);
|
|
173
|
+
bins[x] = 0;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if (bins[min] !== 0) {
|
|
177
|
+
frequencies.push(correctFloat(min));
|
|
178
|
+
bins[correctFloat(min)] = 0;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
fitToBin = fitToBinLeftClosed(
|
|
182
|
+
frequencies.map(function (elem) {
|
|
183
|
+
return parseFloat(elem);
|
|
184
|
+
})
|
|
185
|
+
);
|
|
186
|
+
|
|
187
|
+
baseData.forEach(function (y) {
|
|
188
|
+
var x = correctFloat(fitToBin(y));
|
|
189
|
+
|
|
190
|
+
bins[x]++;
|
|
191
|
+
});
|
|
178
192
|
|
|
179
|
-
bins
|
|
180
|
-
|
|
193
|
+
objectEach(bins, function (frequency, x) {
|
|
194
|
+
data.push({
|
|
195
|
+
x: Number(x),
|
|
196
|
+
y: frequency,
|
|
197
|
+
x2: correctFloat(Number(x) + binWidth)
|
|
198
|
+
});
|
|
199
|
+
});
|
|
181
200
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
x: Number(x),
|
|
185
|
-
y: frequency,
|
|
186
|
-
x2: correctFloat(Number(x) + binWidth)
|
|
201
|
+
data.sort(function (a, b) {
|
|
202
|
+
return a.x - b.x;
|
|
187
203
|
});
|
|
188
|
-
});
|
|
189
204
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
});
|
|
205
|
+
return data;
|
|
206
|
+
},
|
|
193
207
|
|
|
194
|
-
|
|
195
|
-
|
|
208
|
+
binsNumber: function () {
|
|
209
|
+
var binsNumberOption = this.options.binsNumber;
|
|
210
|
+
var binsNumber = binsNumberFormulas[binsNumberOption] ||
|
|
211
|
+
// #7457
|
|
212
|
+
(typeof binsNumberOption === 'function' && binsNumberOption);
|
|
196
213
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
binsNumberFormulas['square-root'](this.baseSeries)
|
|
209
|
-
)
|
|
210
|
-
);
|
|
211
|
-
}
|
|
212
|
-
}));
|
|
214
|
+
return Math.ceil(
|
|
215
|
+
(binsNumber && binsNumber(this.baseSeries)) ||
|
|
216
|
+
(
|
|
217
|
+
isNumber(binsNumberOption) ?
|
|
218
|
+
binsNumberOption :
|
|
219
|
+
binsNumberFormulas['square-root'](this.baseSeries)
|
|
220
|
+
)
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
})
|
|
224
|
+
);
|
|
213
225
|
|
|
214
226
|
/**
|
|
215
227
|
* A `histogram` series. If the [type](#series.histogram.type) option is not
|
|
216
228
|
* specified, it is inherited from [chart.type](#chart.type).
|
|
217
229
|
*
|
|
218
|
-
* @
|
|
219
|
-
* @
|
|
220
|
-
* @
|
|
221
|
-
* @
|
|
222
|
-
* @product highcharts
|
|
230
|
+
* @extends series,plotOptions.histogram
|
|
231
|
+
* @excluding data, dataParser, dataURL
|
|
232
|
+
* @product highcharts
|
|
233
|
+
* @since 6.0.0
|
|
223
234
|
* @apioption series.histogram
|
|
224
235
|
*/
|
|
225
236
|
|
|
@@ -227,19 +238,6 @@ seriesType('histogram', 'column', {
|
|
|
227
238
|
* An integer identifying the index to use for the base series, or a string
|
|
228
239
|
* representing the id of the series.
|
|
229
240
|
*
|
|
230
|
-
* @type
|
|
231
|
-
* @default undefined
|
|
241
|
+
* @type {number|string}
|
|
232
242
|
* @apioption series.histogram.baseSeries
|
|
233
243
|
*/
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* An array of data points for the series. For the `histogram` series type,
|
|
237
|
-
* points are calculated dynamically. See
|
|
238
|
-
* [histogram.baseSeries](#series.histogram.baseSeries).
|
|
239
|
-
*
|
|
240
|
-
* @type {Array<Object|Array>}
|
|
241
|
-
* @since 6.0.0
|
|
242
|
-
* @extends series.column.data
|
|
243
|
-
* @product highcharts
|
|
244
|
-
* @apioption series.histogram.data
|
|
245
|
-
*/
|
|
@@ -19,16 +19,16 @@ var extend = H.extend,
|
|
|
19
19
|
piePoint = H.seriesTypes.pie.prototype.pointClass.prototype;
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
* The item series type.
|
|
23
|
+
*
|
|
24
|
+
* @requires module:modules/item-series
|
|
25
|
+
*
|
|
26
|
+
* @private
|
|
27
|
+
* @class
|
|
28
|
+
* @name Highcharts.seriesTypes.item
|
|
29
|
+
*
|
|
30
|
+
* @augments Highcharts.seriesTypes.pie
|
|
31
|
+
*/
|
|
32
32
|
H.seriesType(
|
|
33
33
|
'item',
|
|
34
34
|
// Inherits pie as the most tested non-cartesian series with individual
|
|
@@ -454,16 +454,20 @@ H.extend(
|
|
|
454
454
|
) {
|
|
455
455
|
distanceXY = layout.getDistXY(node, repNode);
|
|
456
456
|
distanceR = layout.vectorLength(distanceXY);
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
force
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
457
|
+
if (distanceR !== 0) {
|
|
458
|
+
force = layout.repulsiveForce(
|
|
459
|
+
distanceR,
|
|
460
|
+
layout.k
|
|
461
|
+
);
|
|
462
|
+
|
|
463
|
+
layout.force(
|
|
464
|
+
'repulsive',
|
|
465
|
+
node,
|
|
466
|
+
force * repNode.mass,
|
|
467
|
+
distanceXY,
|
|
468
|
+
distanceR
|
|
469
|
+
);
|
|
470
|
+
}
|
|
467
471
|
}
|
|
468
472
|
});
|
|
469
473
|
});
|
|
@@ -628,9 +632,9 @@ H.extend(
|
|
|
628
632
|
}
|
|
629
633
|
);
|
|
630
634
|
|
|
631
|
-
/*
|
|
635
|
+
/* ************************************************************************** *
|
|
632
636
|
* Multiple series support:
|
|
633
|
-
*/
|
|
637
|
+
* ************************************************************************** */
|
|
634
638
|
// Clear previous layouts
|
|
635
639
|
addEvent(Chart, 'predraw', function () {
|
|
636
640
|
if (this.graphLayoutsLookup) {
|