@@ -13,11 +13,10 @@ const { lightningChart, AxisTickStrategies, OHLCSeriesTypes, emptyLine, Themes }
1313// Import data-generator from 'xydata'-library.
1414const { createProgressiveTraceGenerator } = xydata
1515
16- const dataSpan = 60 * 60 * 1000
17- const dataFrequency = 1 * 1000
18-
1916// Decide on an origin for DateTime axis.
2017const dateOrigin = new Date ( 2018 , 0 , 1 )
18+ const dateOriginTime = dateOrigin . getTime ( )
19+
2120// Create charts and series for two different packing resolutions.
2221const dashboard = lightningChart ( ) . Dashboard ( { numberOfColumns : 1 , numberOfRows : 2 } )
2322const chartDefault = dashboard . createChartXY ( {
@@ -67,21 +66,31 @@ const seriesDefault = chartDefault
6766 )
6867 . setName ( 'Default packing resolution' )
6968
69+ const dataSpan = 60 * 60 * 1000
70+ const dataFrequency = 1 * 1000
71+
7072const seriesLow = chartLow
7173 . addOHLCSeries ( { seriesConstructor : OHLCSeriesTypes . AutomaticPacking } )
7274 . setName ( 'Very small packing resolution' )
7375 // Set packing resolution that is equal to the minimum resolution between two points.
7476 // (essentially allows users to zoom to full resolution)
7577 . setPackingResolution ( dataFrequency )
7678
77- // Push points to both series.
78- createProgressiveTraceGenerator ( )
79+ createProgressiveTraceGenerator ( ) // Generating random progressive xy data
7980 . setNumberOfPoints ( dataSpan / dataFrequency )
8081 . generate ( )
8182 . toPromise ( )
83+ // Map random generated data to start from a particular date with the frequency of dataFrequency
84+ . then ( ( data ) =>
85+ data . map ( ( p ) => ( {
86+ x : dateOriginTime + p . x * dataFrequency ,
87+ y : p . y ,
88+ } ) ) ,
89+ )
90+ // When data origin is used (required for DateTime axis range smaller than 1 day), time coordinate has to be shifted by date origin.
8291 . then ( ( data ) =>
8392 data . map ( ( p ) => ( {
84- x : p . x * dataFrequency ,
93+ x : p . x - dateOriginTime ,
8594 y : p . y ,
8695 } ) ) ,
8796 )
0 commit comments